<?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>Rockstarapps.com</title>
	<atom:link href="http://www.rockstarapps.com/wordpress/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.rockstarapps.com/wordpress</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Thu, 24 Dec 2009 04:22:21 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Web Performance Contest</title>
		<link>http://www.rockstarapps.com/wordpress/?p=149</link>
		<comments>http://www.rockstarapps.com/wordpress/?p=149#comments</comments>
		<pubDate>Wed, 20 May 2009 15:26:21 +0000</pubDate>
		<dc:creator>Interjag</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Announcement]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[Keynote]]></category>
		<category><![CDATA[Rockstarapps]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.rockstarapps.com/wordpress/?p=149</guid>
		<description><![CDATA[I have been asked to be a judge on a new web performance contest that is being run by Keynote Systems.  Over the last two plus years I have been building tools that make optimizing web applications as simple as a button click.  Others in the web performance community have been educating or writing their [...]]]></description>
			<content:encoded><![CDATA[<p>I have been asked to be a judge on a new web performance contest that is being run by <a href="http://www.keynote.com/">Keynote Systems</a>.  Over the last two plus years I have been building tools that make optimizing web applications as simple as a button click.  Others in the web performance community have been educating or writing their own tools &#8230;but&#8230; there are still plenty of sites out in the wild that need help.  Working with Keynote for the past couple months I have seen some pretty well know sites that need a lot of help. This is where the contest comes in.</p>
<p><strong>The Contest:</strong></p>
<p><span class="ccbnTxt">&#8220;The competition is open to anyone who wants to make tired, poor, slow Web applications faster and more responsive. Entrants simply record the Web site path or transaction that they want to improve using <a href="http://cts.businesswire.com/ct/CT?id=smartlink&amp;url=http%3A%2F%2Fkite.keynote.com%2Fdownload-center.php&amp;esheet=5968131&amp;lan=en_US&amp;anchor=KITE&amp;index=5">KITE</a> (Keynote Internet Testing Environment) which can be downloaded for free from <a href="http://cts.businesswire.com/ct/CT?id=smartlink&amp;url=http%3A%2F%2Fkite.keynote.com%2Fdownload-center.php&amp;esheet=5968131&amp;lan=en_US&amp;anchor=http%3A%2F%2Fkite.keynote.com%2Fdownload-center.php&amp;index=6">http://kite.keynote.com/download-center.php</a>. &#8220;</span></p>
<p><a href="http://investor.keynote.com/phoenix.zhtml?c=78522&amp;p=irol-newsArticle&amp;ID=1289812&amp;highlight=">Read more about contest here.</a><span id="more-149"></span></p>
<p>Don&#8217;t not submit your site because you don&#8217;t want people to know it&#8217;s slow. Your users already do. This contest is a chance to get some free help and pointers on making it better. It also may be the leverage you need to get you point across that performance matters.  Performance is one of those funny things that some people need to be smacked across the face with in order to take it seriously.  Not sure of all the reasons for this my psychology training only goes as far as training a rat to push a leverage for a food pellet. Use the contest as a catalyst for firing up the team around making your site scream.</p>
<p>I am excited about the contest:  First &#8211; I get to be a judge, I just hope I get a gavel and get to site up high above the contestants to give my decision. Second &#8211; many times developers can do some simple things and make a big difference in there sites speed.  Remember it is even simpler when you use Rockstarapps tools. <img src='http://www.rockstarapps.com/wordpress/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><strong>The Webinar:</strong></p>
<p>Last month, I did a webinar with the folks at Keynote you can check it out here. The webinar is about 1:20 it is well worth the time, we cover quit a few topics including; performance testing and performance optimization. If you don&#8217;t have an 1:20 to spend listening to me talk, just fast forward and look at the slides. Unfortunately, the video is only in windows media format.  You will need to download the <a href="http://static.rockstarapps.com/video/keynote-rockstar-webinar.wmv">video here</a> or you can go here on <a href="http://offers.keynote.com/rc/keynote/tp/kite_talks">kite.keynote.com</a> to get the video as well (You will need to register).</p>
<p><strong>Last but not least:</strong></p>
<p>Over the last couple months I haven&#8217;t blogged as much as I like but that doesn&#8217;t mean lots of stuff it&#8217;s happening. Here is a list of exciting things that have been going on.</p>
<ul>
<li>Released a <strong>jsLint plugin for eclipse </strong>- This plugin brings all the features of Douglas Crockford&#8217;s <a href="http://www.jslint.com/">jsLint</a> library to eclipse. <a href="http://www.rockstarapps.com/joomla-1.5.8/products/jslint-eclipse-plugin.html">Click here for more information</a>. Be warned not everyone on your team will agree with the issue it finds.</li>
<li><strong>Rockstar Web Profiler</strong> -This is huge, Rockstarapps is emassing a set of tools that one person coolly characterized as &#8220;One click global site optimization.&#8221; This new tools was originally called &#8220;Razorspeed Web Profiler&#8221; and is still being build and mantained by <a href="http://www.coachwei.com">Coach Wei</a>. We came together on this to make it easier for people to get all there performance tools in one place.. Check out the <a href="http://www.rockstarapps.com/joomla-1.5.8/products/razor-web-profiler/overview.html">Rockstar Web Profiler</a> here. Also checkout Coach Wei <a href="http://www.coachwei.com/blog/2009/04/01/web-profiler-got-acquired.html">announcement here</a>.</li>
<li>Went to the <strong>Googleplex</strong> and met with <a href="http://www.stevesouders.com/">Steve Souders</a>, the conversation was good and got great feedback on both the optimizer and profiler. Next time I am going to bring my bathing suit for some swimming and beach volley ball &#8211; both of which I kick as at.</li>
<li>On the my trip out to SFO, I slept in the garage of the <a href="http://wwww.bitsandbuzz.com">www.bitsandbuzz.com</a> world headquarters. It was a cool place to crash and the fresh brewed tea was awesome.</li>
<li>Let&#8217;s not leave out the day job at <a href="http://www.nexaweb.com">Nexaweb</a>, the <a href="http://dojoe.nexaweb.com">dojo.E</a> project is getting good traction of late. One application that it it will be rolled into production with is a CMS system.</li>
<li>There is even more exciting news that I can&#8217;t talk about now, but if you follow me on twitter <a href="http://twitter.com/rockstarapps">http://twitter.com/rockstarapps</a>  I give out more and more clues everyday.</li>
</ul>
<p><strong>Last Question:</strong></p>
<p>Today, there are a lot of optimization tools and knowledge (books, seminars, &#8230;) about producing a highly optimized website, though it seems like not everyone takes advantage of them. I would like to hear why you do or don&#8217;t optimize your sites.</p>
<p>Bob (Buffone)</p>
<p><script src="http://js-kit.com/for/rockstarapps.com/polls.js"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.rockstarapps.com/wordpress/?feed=rss2&amp;p=149</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://static.rockstarapps.com/video/keynote-rockstar-webinar.wmv" length="10072135" type="video/x-ms-wmv" />
		</item>
		<item>
		<title>Unleash the Browser with Cross-Domain Requests &#8211; eh not yet</title>
		<link>http://www.rockstarapps.com/wordpress/?p=147</link>
		<comments>http://www.rockstarapps.com/wordpress/?p=147#comments</comments>
		<pubDate>Wed, 25 Mar 2009 16:32:38 +0000</pubDate>
		<dc:creator>Interjag</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Client]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[IE8]]></category>
		<category><![CDATA[Open Web]]></category>

		<guid isPermaLink="false">http://www.rockstarapps.com/wordpress/?p=147</guid>
		<description><![CDATA[Seeing the feature list for the latest version of IE (8), I was excited to download it and get started exploring one feature in particular &#8211; that was the new XDomainRequest object. The XDomainRequest object gives developers the ability to access resources outside of the original application&#8217;s host domain (www.rockstarpps.com for my blog).  This limitation [...]]]></description>
			<content:encoded><![CDATA[<p>Seeing the feature list for the latest version of IE (8), I was excited to download it and get started exploring one feature in particular &#8211; that was the new <a href="http://msdn.microsoft.com/en-us/library/cc288060(VS.85).aspx">XDomainRequest</a> object. The XDomainRequest object gives developers the ability to access resources outside of the original application&#8217;s host domain (www.rockstarpps.com for my blog).  This limitation was imposed to eliminate sending sensitive data to bad people for nefarious reasons.  Even with this restriction, developers have been able hack around the browser limitation get Cross Domain (aka <a href="http://en.wikipedia.org/wiki/Cross-site_scripting">cross-site</a>) functionality.</p>
<p>Cross-Domain (aka Cross-Origin, Cross-site) requests aren&#8217;t new to the Web world they have been available in Flash for some time.  As a supporter of the <a href="http://openwebfoundation.org/">Open Web</a>, I try to do most of my application development in HTML, CSS and JavaScript. Every now and then I get the urge to build a new application to prototype a thought or fill a singular niche (That&#8217;s one that I will most likely find interesting or useful).</p>
<p>That&#8217;s how the <a href="http://snipper.rockstarapps.com">Snipper</a> application came about. When I was done with the basic functionality, I decided to build a web application that did essentially what the eclipse plugin does.</p>
<ul>
<li>Submit Content to S3</li>
<li>Update Status on Twitter</li>
<li>Submit Content to S3</li>
</ul>
<p><span id="more-147"></span><strong>Services without Servers</strong></p>
<p>Another thing I have been reading about lately are articles on Tim Berners-Lee&#8217;s concept of  						<a href="http://blog.ted.com/2009/03/tim_berners_lee_web.php">linked-data</a>. The concept is interesting and the way I have envisioned this working is what I call &#8220;Services without Servers&#8221;. As a developer, I should be able to create new Services without having any servers either shared, hosted, or in the cloud that run code I have written. Using only APIs and the user&#8217;s machine, I should be able to create a service. This is how I envisioned the <a href="http://snipper.rockstarapps.com">Snipper</a> web application working. Assembling different content into a browser-based application; I would use JavaScript create the running application.</p>
<p>The page that displays the snippet is done in just this manner using JavaScript, web-based data and the following services; <a href="http://twitter.com/">Twitter</a>, <a href="http://js-kit.com/">js-kit</a>, <a href="http://tinyurl.com/">tinyurl</a>,  						<a href="http://aws.amazon.com/">Amazon S3</a> the page is assembled on the client.</p>
<p style="text-align: center"><img src="http://snipper.rockstarapps.com.s3.amazonaws.com/resources/images/workflow.jpg" /></p>
<p style="text-align: center">&nbsp;</p>
<p>This works great for displaying data but for producing data the current browser environment is insufficient.</p>
<p><strong>You might have done this:</strong></p>
<p>Knowing I needed to integrate twitter, I went to the <a href="http://apiwiki.twitter.com/Libraries">twitter.com/api</a> page and started looking for the JavaScript API. &#8220;Let&#8217;s see&#8230;&#8221;</p>
<ul>
<li>ActionScript/Flash, C++, C#/.NET, Java, Objective-C/Cocoa, Perl, PHP, PL/SQL, Python, Ruby, Scala</li>
</ul>
<p>Damn it, where&#8217;s the JavaScript? Oh yeah, that&#8217;s right it can&#8217;t be done because there isn&#8217;t Cross domain functionality. ActionScript &amp; Flash have libraries because the flash engine can access resources outside of the host domain.</p>
<p><strong>Flash &amp; Flex</strong></p>
<p>Flash &amp; Flex applications allow developers to access cross domain sites using a configuration file that is retrieved from the applications host domain. This file configures the flash engine to allow access to certain domains. An example of the cross domain configuration file is embedded below.</p>
<pre>&lt;?xml version="1.0"?&gt;
&lt;!-- http://snipper.rockstarapps.com/crossdomain.xml --&gt;
&lt;cross-domain-policy&gt;
    &lt;allow-access-from domain="www.twitter.com"/
    &lt;allow-access-from domain="*.twitter.com"/&gt;
    &lt;allow-access-from domain="105.216.0.40"/&gt;
&lt;/cross-domain-policy&gt;</pre>
<p>This approach makes sense because it allows the host domain to secure which domains can be called. If the application tries to call a 3rd party domain that is not allowed, the request can be stopped.  This approach also allows integration of 3rd party libraries without worry of them sending data to anyplace other than the ones specified.  Lastly, this approach works with any third party service.  Twitter does not need to do anything special to allow Flash &amp; Flex clients to access their services as they don&#8217;t for PHP, Java or any other technology&#8230; Not so fast, lets see what the W3C has come up with.</p>
<p><strong>W3C &amp; Open Web</strong></p>
<p>Currently the W3C is working on a <a href="http://www.w3.org/TR/2009/WD-cors-20090317/">Cross-Origin Specification</a>. I am not going to go <a href="http://www.zedshaw.com">Zed Shaw</a>, but I have to admit that I don&#8217;t get the approach of the W3C. Having a working model already on the Web (Flash) the W3C came up with a whole different model of cross domain requests.</p>
<p>Instead of the having the host domain provide the browser with the list of sites the browser is allow to talk to. It is up to the 3rd Party to determine if they allow requests from a certain origin. What? Let me explain.</p>
<p>In this model the browser has access to all websites. When a cross domain request is made the browser will add the <a href="http://www.w3.org/TR/2009/WD-cors-20090317/#origin-request-header">&#8220;Origin&#8221;</a> header to the request.  Below is the contents of the a XDomainRequest in IE8.</p>
<p><strong>Cross Domain Request:</strong></p>
<pre>GET /test.php HTTP/1.1
Host: www.rockstarapps.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1b3) Gecko/20090305 Firefox/3.1b3
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://www.rockstarapps.com/samples/crossdomain/index.html
Origin: http://www.rockstarapps.com</pre>
<p>It is up to the end point of the request to respond that they except cross domain requests. In order to do this they respond at a minimum with the <a href="http://www.w3.org/TR/2009/WD-cors-20090317/#access-control-allow-origin-response-hea">&#8220;Access-Control-Allow-Origin&#8221;</a> header. Below is a snippet of PHP code to respond with the header.</p>
<p><strong>3rd Party:</strong></p>
<pre>&lt;?php
    header("Access-Control-Allow-Origin: *");
?&gt;</pre>
<p>I see several big issues with the what the W3C has provided as a basis for cross domain:</p>
<ol>
<li>Puts the onus on the 3rd party providers.  This means that all 3rd party services need to add the access control header.  I can&#8217;t just use the new IE 8 browser to start interacting with 3rd party services like twitter. Every response to a request by twitter, flickr or any other needs to supply this header at a minimum. Why? They don&#8217;t need to do this for any other client of their service.</li>
<li>Can&#8217;t protect 3rd party libraries from sending to unknown destinations. If I load a JavaScript library it can send data to anyone it wants.</li>
<li>The Client sends data even before the service is verified. It is speced that Browser is supposed to issue what is called a <a href="http://www.w3.org/TR/2009/WD-cors-20090317/#preflight-request0">Pre-flight Request</a> to verify the supported methods and headers but I ran both IE 8 and the firefox beta through a proxy and didn&#8217;t see this work.</li>
<li>I need to change my server code to support this type of interaction. Also the service provide is responsible for keeping a list of the domains. There are what &#8211; a billion plus internet domains registered.  Now everyone needs to keep track.</li>
</ol>
<p>Overall I think the approach is completely backwards from the way it is supposed to work. Flash &amp; Flex will still be needed if you want to build a client only application on the web.</p>
<p>The one application model that this spec makes sense is where the user chooses the endpoint. Take an application like <a href="https://bespin.mozilla.com/">Bespin</a>, they could offer a portable repository model that makes it possible for any third party to supply settings and project information as long as they support some JSON specification.  How would it work?  Load the application from the Bespin site and then choose a code repository. In this workflow the W3C model would provide a vehicle for creating this application.</p>
<p><strong>Native Support</strong></p>
<p><em>IE 8:</em></p>
<p>New in IE 8 is the <a href="http://msdn.microsoft.com/en-us/library/cc288060(VS.85).aspx">XDomainRequest</a> which provides the ability to execute requests outside of the application hosts domain.  To see how to use it check out this <a href="http://snipper.rockstarapps.com.s3.amazonaws.com/display.html?fileName=snippets%2Frockstarapps%2F03-24-2009%2F1237912043875.txt">code snippet</a>. One of the down falls of the object is that is has a very limited API, <a href="http://msdn.microsoft.com/en-us/library/cc288060(VS.85).aspx">click to see API</a>. Doesn&#8217;t seem to be the same functionality as the normal requests; headers, set body content, multipart posts.  Again this limits the usefulness of the API for building applications.</p>
<p><em>Everyone Else (Tested in Firefox 3.1.3 beta): </em></p>
<p>The rest of the browsers will use the XMLHttpRequest which will presumably have the same functionality as it does for non cross-domain requests. <a href="http://snipper.rockstarapps.com.s3.amazonaws.com/display.html?fileName=snippets%2Frockstarapps%2F03-25-2009%2F1237995579734.txt">Click here to see how to use the native API</a>.</p>
<p><strong>NOTE:</strong> Don&#8217;t try to run this through the from http://localhost/&lt;app&gt; and call  http://127.0.0.1/request.php. I didn&#8217;t get this to work and needed to change my host file as <a href="http://blogs.msdn.com/ie/archive/2008/10/06/updates-for-ajax-in-ie8-beta-2.aspx">they did in this video</a>.  Kinda sucks but easy enought to work around when you know.</p>
<p><strong>NOTE:</strong>  The Cross domain requests would fail if you try to run the browser through a proxy. This happened, I did see it fail in IE and firefox but couldn&#8217;t reproduce it, I guess it was my fault.</p>
<p><strong>Library Support</strong></p>
<p>As of testing the latest release libraries using the <a href="http://code.google.com/apis/ajaxlibs/">Google Ajax Libraries API</a> which makes this kind of testing extremely easy. Now, I don&#8217;t think that any library should support the Cross Domain requests at this point. None of the libraries tested support the new XDomainRequest.</p>
<ul>
<li>Prototype &#8211; Errors in both IE8 and Firefox 3.1.beta</li>
<li>Mootools &#8211; Errors in both IE8 and Firefox 3.1.beta</li>
<li>Dojo &#8211; Errors in both IE8 and Firefox 3.1.beta</li>
<li>jQuery  &#8211; Errors in both IE8 and Firefox 3.1.beta</li>
</ul>
<p><strong>Test Application</strong></p>
<p>I have created a test application that allows you to try out the Cross Domain functionality. I have tested it in IE8 and the Firefox 3.1.3 beta. Only the HTML is required to run the application. The test file that is requested looks as follows:</p>
<pre>
&lt;?php
    header("Access-Control-Allow-Origin: *");
?&gt;
 { 
   "name": "Bob Buffone",
   "blog": "http://www.rockstarapps.com/wordpress",
   "myData": &lt;?php echo $_GET["mydata"]; ?&gt;
 }</pre>
<pre></pre>
<p>Screen shot of test application. <a href="http://www.rockstarapps.com/samples/crossdomain/index.html">Click to see for yourself</a>.</p>
<p><a href="http://www.rockstarapps.com/samples/crossdomain/index.html?library=jquery"><img src="http://www.rockstarapps.com/wordpress/wp-content/uploads/2009/03/screenshotie8.png" border="0" /></a></p>
<p><strong>Conclusion<br />
</strong></p>
<p>My feelings after researching the Cross Domain functionality is that it really isn&#8217;t ready to build applications.  Unfortunately, theW3C didn&#8217;t get what the people would try to do with cross domain requests. Therefore, it will be along time before I go to the twitter api page and see a JavaScript library. What I am looking for in the browser is the same support to execute requests as PHP, Java.  Limiting the API doesn&#8217;t protect the data in the page, it just limits the usefulness of the browser to deliver more functional applications.</p>
<p>Bob (Buffone)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rockstarapps.com/wordpress/?feed=rss2&amp;p=147</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Just Jump: Start using Clouds and CDNs</title>
		<link>http://www.rockstarapps.com/wordpress/?p=138</link>
		<comments>http://www.rockstarapps.com/wordpress/?p=138#comments</comments>
		<pubDate>Wed, 11 Feb 2009 15:27:41 +0000</pubDate>
		<dc:creator>Interjag</dc:creator>
				<category><![CDATA[Amazon WS]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[CloudFront]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[S3]]></category>

		<guid isPermaLink="false">http://www.rockstarapps.com/wordpress/?p=138</guid>
		<description><![CDATA[Since October I have immersed myself in understanding what Clouds and Content Distribution Networks (CDNs) can do for Web Application developers. Many of the people I know have deployed or are looking to applications on a Cloud infrastructure this year.  Just yesterday, I was talking to a company that I know and they are moving [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.rockstarapps.com/wordpress/wp-content/uploads/2009/02/justjump_small.jpg" style="margin-right: 10px" align="left" />Since October I have immersed myself in understanding what Clouds and Content Distribution Networks (CDNs) can do for Web Application developers. Many of the people I know have deployed or are looking to applications on a Cloud infrastructure this year.  Just yesterday, I was talking to a company that I know and they are moving from a hosted ruby service to Azamon looking to make scaling out their service simpler.</p>
<p>The area that is of the biggest interest to me personally is, &#8220;how does using a Cloud affect Website optimization?&#8221; (That&#8217;s the focus of <a href="http://www.rockstarapps.com">rockstarapps.com</a> tools.) Starting out I was assumed that using Cloud infrastructure or a CDN was only for sites like ESPN.com or CNN.com. How could I, one person and no budget be able to leverage these technologies? Taking this question and breaking it down into several more manageable questions, I try to provide you with the information needed to get started using it in your own projects.</p>
<ul>
<li>Isn&#8217;t using a CDN going to be expensive?</li>
<li>How easy will it be to get up to speed and use the technology effectively?</li>
<li>How can using a CDN like CloudFront improve a sites performance?</li>
</ul>
<p><span id="more-138"></span>  <strong>Isn&#8217;t using a CDN going to be expensive?</strong></p>
<p>The answer is simple. N0, but it depends on how many page views you get, the number of resources that are within each page and the size of each resource. See, most CDNs charge on the following way:</p>
<ol>
<li>Cost of Request * the number of requests.</li>
<li>Cost per GB * bandwidth</li>
<li> In Amazon the origination of the request changes the price of the resource. See my CloudFront bill from last month below.</li>
</ol>
<p>Here is my CloudFront bill for last month:</p>
<table style="border: 1px solid #aaaaaa; padding: 5px">
<tr>
<td colspan="3"><strong>United States</strong></td>
</tr>
<tr>
<td>$0.170 per GB &#8211; first 10 TB / month data transfer out (includes consumption tax)</td>
<td>0.404 GB</td>
<td align="right">0.07</td>
</tr>
<tr>
<td>$0.010 per 10,000 GET Requests (includes consumption tax)</td>
<td>9,528 Requests</td>
<td align="right">0.01</td>
</tr>
<tr>
<td colspan="3" align="right">0.08</td>
</tr>
<tr>
<td colspan="3"><strong>European Union</strong></td>
</tr>
<tr>
<td>$0.170 per GB &#8211; first 10 TB / month data transfer out (includes consumption tax)</td>
<td>0.116 GB</td>
<td align="right">0.02</td>
</tr>
<tr>
<td>$0.012 per 10,000 GET Requests (includes consumption tax)</td>
<td>10,793 Requests</td>
<td align="right">0.01</td>
</tr>
<tr>
<td colspan="3" align="right">0.03</td>
</tr>
<tr>
<td colspan="3"><strong>Japan</strong></td>
</tr>
<tr>
<td>$0.221 per GB &#8211; first 10 TB / month data transfer out (includes consumption tax)</td>
<td>0.010 GB</td>
<td align="right">0.01</td>
</tr>
<tr>
<td>$0.013 per 10,000 GET Requests (includes consumption tax)</td>
<td>907 Requests</td>
<td align="right">0.01</td>
</tr>
<tr>
<td colspan="3" align="right">0.02</td>
</tr>
<tr>
<td colspan="3"><strong>Hong Kong</strong></td>
</tr>
<tr>
<td>$0.210 per GB &#8211; first 10 TB / month data transfer out (includes consumption tax</td>
<td>0.022 GB</td>
<td align="right">0.01</td>
</tr>
<tr>
<td>$0.012 per 10,000 GET Requests (includes consumption tax</td>
<td>1,868 Requests</td>
<td align="right">0.01</td>
</tr>
<tr>
<td colspan="3" align="right">0.02</td>
</tr>
<tr>
<td colspan="2"><strong>View Usage Report</strong></td>
<td>0.15</td>
</tr>
</table>
<p>This is just for my site which has been getting about 200+ visitors a day and about 3.5 page views for each visit.  15 cents for a month, not too bad and throw in the fact I got a $25 gift certificate for participating in Amazon&#8217;s Startup Challenge, I will able host my static resources using CloudFront for the next three years.</p>
<p>If you want to figure out how much hosting of your resources will cost using CloudFront, check out Amazon&#8217;s calculator.  <a href="http://calculator.s3.amazonaws.com/calc5.html">Click here to calculate your price.</a></p>
<p><strong>How easy will it be to get up to speed and use the technology effectively</strong><strong>?</strong></p>
<p>I was pleasantly surprised that getting up to speed with a CDN is fairly a straight forward process.  Upcoming a plug &#8211; You will need to find a tool that works well interacting with S3 and CloudFront &#8211; <a href="http://www.rockstarapps.com/joomla-1.5.8/products/amazon-ws-tools.html">RockstarApps&#8217; tools may be what you need</a>. Behind the scheme of a CDN there are many complicated things going on to distribute resources, keep them fresh and making sure each resource is loaded from the closest server to the user.</p>
<p><strong>What do you need to do? </strong></p>
<p>Normally on a Website the static resources are loaded from the same server as the dynamic content.</p>
<p>&lt;html&gt;<br />
&lt;head&gt;<br />
&lt;script src=&#8221;my.js&#8221;&gt;&lt;/script&gt;<br />
&lt;/head&gt;<br />
&#8230;.</p>
<p>In the code above, the browser loads the Webpage from http://localhost, then the JavaScript file &#8220;my.js&#8221; will be loaded from the same server (http://localhost/my.js).  In order to utilize a CDN for the JavaScript, you will need to change the URL for the JavaScript file to be the location of the resource in the CDN.</p>
<p>&lt;html&gt;<br />
&lt;head&gt;<br />
&lt;script src=&#8221;http://cdn.rockstarapps.com/js/my.js&#8221;&gt;&lt;/script&gt;<br />
&lt;/head&gt;<br />
&#8230;.</p>
<p>Each resource that is deployed into the CDN will need its URL changed.  The exception to this are URL&#8217;s within a CSS file that is loaded from the CDN. This is because the resources are loaded relative to the CSS file.</p>
<p><strong>Walk through of using <a href="http://aws.amazon.com/cloudfront/">Amazon&#8217;s CloudFront</a> CDN:</strong></p>
<p><strong>Step one</strong> &#8211; sign up for a Amazon WebServices Account, <a href="http://aws.amazon.com/">click here to sign up</a>.  You will be required to provide a credit card but everything is paid based on usage and there is no setup charge.</p>
<p><strong>Step two</strong> &#8211; Sign up for both <a href="http://aws.amazon.com/cloudfront/">CloudFront</a> and <a href="http://aws.amazon.com/s3/">S3</a>, you will need both of these services in order to host your resources. Amazon requires users to sign up for each service separately.</p>
<p><strong>Step three</strong> &#8211; Create an S3 bucket &#8211; You will need to provide a globally unique name for the bucket, your best bet is to use your domain name as as prefix and a descriptor as a postfix. The images below shows the S3 buckets I have deployed into S3.  The Eclipse view is part of RockstarApps&#8217; Amazon WS tools, <a href="http://www.rockstarapps.com/joomla-1.5.8/products/amazon-ws-tools.html">click here to read more</a>.</p>
<p><img src="http://www.rockstarapps.com/wordpress/wp-content/uploads/2009/02/s3.png" /></p>
<p><strong>Step four</strong> &#8211; Upload your resources into the bucket. The S3 view below shows how the resources are organized.  S3 works very much a file system; the buckets being the drives and the resources are organized in directories and files.</p>
<p><strong>Note:</strong> when resources are initially uploaded, their privilege is set so that they can&#8217;t be read by the public.  You will need to change their privilege to read only for everyone. If you don&#8217;t change the privilege you will get an access to denied error when loading the resource.</p>
<p><img src="http://www.rockstarapps.com/wordpress/wp-content/uploads/2009/02/s31.png" /></p>
<p>To test out the resources were uploaded properly, you can use a URL like the following. Substituting your bucket name and resource location. If you are using the RockstarApps tool select the resource and hit the Earth icon in the toolbar.  This will bring up an editor show the status of the resource from it various possible access URLs.</p>
<p><a href="http://rockstarapps.com.joomla.s3.amazonaws.com/resources/templates/mocha/css/mocha.all.css">http://rockstarapps.com.joomla.s3.amazonaws.com/resources/templates/mocha/css/mocha.all.css</a></p>
<p><strong>Step Five</strong> &#8211; Create a CloudFront Distribution. This is where you connect your resources in S3 to a CDN.  When the initial distribution is created it is given a unique but ugly name.</p>
<p><img src="http://www.rockstarapps.com/wordpress/wp-content/uploads/2009/02/s32.png" /></p>
<p><strong>Step Six</strong> &#8211; Assign a CNAME to the CloudFront distribution, this will allow you to use a name similar to <strong>cdn.rockstarapps.com</strong> verse <strong>dtksrkctuzfa.cloudfront.net</strong></p>
<ul>
<li><strong>Part A</strong> &#8211; Tell CloudFront what the domain name will be.  Using the RockstarApps tools you can do this from the &#8220;Create Distribution&#8221; dialog or by modifying the properties of the distribution after it is created.<br />
<img src="http://www.rockstarapps.com/wordpress/wp-content/uploads/2009/02/s33.png" /></li>
<li> <strong>Part two</strong> &#8211; configure the CNAME entry in your domain settings.  I use GoDaddy for my host&#8230; What&#8230; they have a good product and great <a href="http://videos.godaddy.com/super-bowl-commercials.aspx?ci=14027&amp;mediaid=exposure">SuperBowl Commercials</a>.<br />
<strong>Update 2.11.2009</strong>: My site is running really slow, unless it is fixed quickly, I will reverse my GoDaddy has a good product.<img src="http://www.rockstarapps.com/wordpress/wp-content/uploads/2009/02/s34.png" /></li>
</ul>
<p>That&#8217;s it, the CNAME configuration is the last step. Once this is configured you will be able to load the resources using the configured sub domain, in my case it will be cdn.rockstarapps.com</p>
<p><strong>How can using a CDN like CloudFront affect a sites performance?</strong></p>
<p>A Websites performance gets worse the farther the user is away from the server.  This is why developers never seem to have performance problems when they are running the application from <strong>http://localhost. </strong>But when the site is rolled out into production people have a bad experience. This is due to the fact that server is in Texas and the user is in Germany and there is a great distance the bytes need to travel and through many devices.</p>
<p>Just looking ping timing of www.rockstarapps.com (90ms) vs. cdn.rockstarapps.com (18ms) that is a 80% reduction in just the ping time.</p>
<p><img src="http://www.rockstarapps.com/wordpress/wp-content/uploads/2009/02/s35.png" /></p>
<p>Combine this a <a href="http://en.wikipedia.org/wiki/Traceroute">tracerout</a> for each domain www.rockstarapps.com has 19 hops vs. 11 hops for cdn.rockstarapps.com a 43% reduction in hops.</p>
<p><img src="http://www.rockstarapps.com/wordpress/wp-content/uploads/2009/02/s36.png" /></p>
<p>Add in a layer of resource optimization (<a href="http://www.rockstarapps.com/joomla-1.5.8/products/css-a-javascript-optimization.html">Concatenation and Compression</a>) and you will be able to deploy a highly optimal site that gets that &#8220;A&#8221; in YSlow!</p>
<p><strong>Summary:</strong></p>
<p>Amazon&#8217;s CloudFront isn&#8217;t the only CDN out there, you can checkout <a href="http://www.limelightnetworks.com/">LimeLight</a> and <a href="http://www.akamai.com/">Akamai</a> plus others. My effort so far has been around Amazon, but you can investigate the others.  The big boys have been using CDNs for a long time and finally it is simple and cheap enough for site like RockstarApps.com and most likely yours to start using these technologies for your own projects.</p>
<p>I know my site gets about half of its traffic from outside of the US which means that the use of the CDN really makes the site more user friendly.  Companies like <a href="http://www.keynote.com/">Keynote</a> can give you analytical assement of how your site is performing in various parts of the world. Keynote provides a tool called <a href="http://kite.keynote.com/home.php">Kite</a> that is good to get started testing out your Websites performance.</p>
<p>Bob (Buffone)<br />
Optimizing the Web</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rockstarapps.com/wordpress/?feed=rss2&amp;p=138</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>The new rockstarapps.com is now live</title>
		<link>http://www.rockstarapps.com/wordpress/?p=131</link>
		<comments>http://www.rockstarapps.com/wordpress/?p=131#comments</comments>
		<pubDate>Wed, 21 Jan 2009 14:23:23 +0000</pubDate>
		<dc:creator>Interjag</dc:creator>
				<category><![CDATA[Amazon WS]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[CloudFront]]></category>
		<category><![CDATA[Joomla]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[S3]]></category>

		<guid isPermaLink="false">http://www.rockstarapps.com/wordpress/?p=131</guid>
		<description><![CDATA[Over the last few months I have been working on getting the latest version of jsLex coded, packaged and tested.  A few weeks ago, I wrote up my thoughts on the new release 2009 will be a Rockstar year. If you want to check out the features in the new version go to the products [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.rockstarapps.com/wordpress/wp-content/uploads/2009/01/onair.jpg" style="margin-right: 10px" align="left" />Over the last few months I have been working on getting the latest version of jsLex coded, packaged and tested.  A few weeks ago, I wrote up my thoughts on the new release <a href="http://www.rockstarapps.com/wordpress//?p=129" rel="bookmark" title="Permanent Link: 2009 will be a Rockstar year">2009 will be a Rockstar year.</a> If you want to check out the features in the new version go to the <a href="http://www.rockstarapps.com/joomla-1.5.8/products/overview.html">products</a> section of the site.</p>
<p>Product releases are more than just the bits and JAR files, you need to update documentation and Web pages to reflect the new stuff. If you can&#8217;t find it on Google does it really exist? In the past I had been using three separate methods.</p>
<ul>
<li>Static HTML homepage</li>
<li>Wordpress</li>
<li>A wiki</li>
</ul>
<p>Going forward, I felt this was too many solutions and none of them appropriate to manage a 50 page website where I will be updating it in real time.  So&#8230; in order to move the site forward I needed to find a CMS system.  The thought of this gave me the shivers; but it needed to be done.</p>
<p><span id="more-131"></span></p>
<p><strong>Joomla</strong></p>
<p>I would love to tell you that I went through a long list of all the options evaluated them in great detail, did a POC.  But that time would be better spent on other things.  Instead, I had been seeing a lot of Joomla articles floating around lately and installed it (Developer marketing really does work, especially if it seems grassroot).</p>
<p>During the process of getting started with Joomla, I wrote down my thoughts:</p>
<ul>
<li>Installation &#8211; Simple.</li>
<li>Community &#8211; Active.</li>
<li>Plugins &#8211; A lot of them. I like that I can install them from the control panel and don&#8217;t need to FTP them to the server.  This is a huge advantage and saves time.</li>
<li>Flexibility &#8211; very nice. Templates, Plugins, Modules, Locations</li>
<li>Templates &#8211; A lot of them. I ended up using the <a href="http://www.joomlajunkie.com/demo/index.php?template=mocha">Mocha</a> template because it was professional and clean, cost me $49, but worth it for the piece of mind that the site looks good.  Can everyone using Mocha, change their template, and also can the people thinking about using the template, not <img src='http://www.rockstarapps.com/wordpress/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </li>
<li>Documentation &#8211; Pretty good.</li>
<li>Ease of Use &#8211; OK once you get the hang of it.</li>
<li>Speed &#8211; OK, I have been tweaking it to get it more optimized.</li>
<li>SEO friendly.  This is huge, I am already on the first page for many searches that people would do for my site.  Just change the settings in the &#8220;Global Configuration&#8221; page and make the supplied .htaccess file active.</li>
</ul>
<p>Issues I ran into getting up and running, mostly just monkeying with stuff I didn&#8217;t understand:</p>
<ul>
<li>Menus &#8211; This was thing that took me the longest to figure out. I still have spare menus hanging around in the menu manager. When I first started, I went to the menu manager and added several top-level menus that I though would show up as top level menus in the application.  This didn&#8217;t work.  You need to add the Top level menus to the &#8220;Main Menu&#8221;.  They will show up in the menu bar correctly.</li>
<li>Sub Menus &#8211; I wanted to display a submenu in each section of the site, I again created top level menus and then attached them in the module page.  But now I had two menus for every page and this was difficult to manage.</li>
</ul>
<blockquote><p>The way I finally got it to work the best was as follows:</p></blockquote>
<blockquote><p>1.) Go to the &#8220;Main Menu&#8221; in the menu manager and create the complete menu tree.<br />
2.) Go to the Module manager and create a Menu module.<br />
3.) Set the properties for the Menu module as I did in the screen shot below.</p>
<p><a href="http://www.rockstarapps.com/wordpress/wp-content/uploads/2009/01/submenu.png"><img src="http://www.rockstarapps.com/wordpress/wp-content/uploads/2009/01/submenu.thumbnail.png" border="0" /></a></p>
<p>4.) Set the Menu selection to be all the menus items you want the sub menu to be displayed on.<br />
5.) Need to set the start level to be &#8220;1&#8243;. This part is a little magic, there is no setting that says I want to display the Products menus but it just knows.</p></blockquote>
<ul>
<li>Can&#8217;t create an article from the menu manager.  When starting from scratch it would be nice to allow the user to create an article once the menu is created.  Otherwise I need to:<br />
1.) Hit save.<br />
2.) Go to the article manager.<br />
3.) Create a blank article.<br />
4.) Save it.<br />
5.) go back to the Menu Manager.<br />
6.) Open the menu item.<br />
7.) Select the article.</li>
<li>Names of the Menu types aren&#8217;t that intuitive &#8211; Use the &#8220;Article Layout&#8221; to display a single article.  Didn&#8217;t use any other ones Menu types.</li>
<li>Connecting the modules to different &#8220;positions&#8221; in the template. I love this feature, but figuring out where the module will show up is related to the template. So I need to refer to the template layout sheet.  &#8220;Print out the layout sheet if our template has one&#8221; it will make it easier.</li>
<li>Sub directory installation. I installed my Joomla into a joomla-1.5.8 directory but want the urls to be in the root directory.  Not even sure if this is possible but have been playing with the .htaccess try rewriting the URLs.</li>
</ul>
<p><strong>Optimizing Joomla</strong></p>
<p>Rockstarapps&#8217; tagline is &#8220;Optimizing the Web&#8221; &#8211; so how could I have my site scoring an &#8220;F&#8221; in YSlow!.  Once I got the site running and populated with my pages, the next step was getting Joomla optimized. Front-end performance is the quickest and easiest way to get the site running the faster.  Front-end Web Optimization is also the focus of Rockstarapps&#8217; tools. So it was a good test, to see if I could optimize the site.</p>
<p>Before starting the optimization process I a snap shot of the sites performance, so I could compare it to the results of the optimization. Below are screen shots from YSlow and Firebug (I ran these on the home page www.rockstarapps.com). The important numbers are:</p>
<ul>
<li>YSlow Grade = <strong>F(48) </strong></li>
<li>Request Count = <strong>28 </strong></li>
<li>Load Time<strong> = 6.96 seconds </strong></li>
<li>Download Size<strong> =  356KB</strong></li>
</ul>
<p><a href="http://www.rockstarapps.com/wordpress/wp-content/uploads/2009/01/pre-optimize.png"><img src="http://www.rockstarapps.com/wordpress/wp-content/uploads/2009/01/pre-optimize.thumbnail.png" border="0" /></a>     <a href="http://www.rockstarapps.com/wordpress/wp-content/uploads/2009/01/pre-optimize-yslow.png"><img src="http://www.rockstarapps.com/wordpress/wp-content/uploads/2009/01/pre-optimize-yslow.thumbnail.png" border="0" /></a></p>
<p><strong>Onto the Optimizations:</strong></p>
<p><strong>Optimizing the Requests</strong> &#8211; Templates, Plugins, Modules all have CSS, and JavaScript so I needed to see what was being loaded then chase them down in the code.  Once the resources were found, I used the jsLex <a href="http://www.rockstarapps.com/joomla-1.5.8/products/cloud-optimization-a-deployment.html">CSS and JavaScript Optimizer</a> to create the minified and GZipped versions.  Many of the extension and templates have resource bundling and GZip features, but this won&#8217;t get you down to a single JavaScript and CSS file.</p>
<p><strong>Note:</strong> It would be nice to build into the extension mechanism a way to specify the CSS and JavaScript that is needed, then Joomla could create the single JavaScript and CSS file.  This would create a far great optimization than leaving up to the individual extensions. This would also allow for Joomla to remove duplicate scripts as well.</p>
<p><strong>Moving to the Cloud &#8211; </strong>One of the areas of the new jsLex release is making it easy for developers to interact with <a href="http://www.rockstarapps.com/joomla-1.5.8/products/amazon-ws-tools.html">Amazon WS</a>.  To developers CloudFront and S3 are a good way to deliver high performance websites.  CDNs have long been used by the Big Guys.  Think ESPN or CNN.com run their sites on a shared server in Milwaukee? I doubt it to.  So once the JavaScript and CSS were optimized and GZipped, I uploaded the templates directory to S3 and setup a CloudFront distribution with a CNAME cdn.rockstarapps.com.</p>
<p>Once the files were put in S3 and everything was configured, I just needed to set the resources directory to be the CDN path.  I manually set the path on the CSS and JavaScript, this was less risky changing the &#8220;$this-&gt;baseurl&#8221;</p>
<p><strong>The Results:</strong></p>
<p>After the optimization the metrics are now: (I need a drum roll plugin for wordpress)</p>
<ul>
<li>YSlow Grade = <strong>B(89)</strong></li>
<li>Request Count = <strong>19</strong></li>
<li>Load Time<strong> = 2.69 seconds</strong></li>
<li>Download Size<strong> =  204KB</strong></li>
</ul>
<p>Improvements below are good, but could be better, I want to get an &#8220;A&#8221; on everything so more fine tuning could be done, one reason I didn&#8217;t get an &#8220;A&#8221; was not using a CDN. The resources that were marked down with from google and the video hosted by vimeo. I can live with that.</p>
<ul>
<li>YSlow Grade = <strong>Increased by 85% </strong></li>
<li>Request Count = <strong>Decreased by 32% </strong></li>
<li>Load Time<strong> = Decreased by 61%</strong></li>
<li>Download Size<strong> =  Decreased by 42%</strong></li>
</ul>
<p><a href="http://www.rockstarapps.com/wordpress/wp-content/uploads/2009/01/post-optimize.png"> <img src="http://www.rockstarapps.com/wordpress/wp-content/uploads/2009/01/post-optimize.thumbnail.png" border="0" /></a>       <a href="http://www.rockstarapps.com/wordpress/wp-content/uploads/2009/01/pre-optimize-yslow1.png"><img src="http://www.rockstarapps.com/wordpress/wp-content/uploads/2009/01/pre-optimize-yslow1.thumbnail.png" border="0" /></a></p>
<p><strong>Summary:</strong></p>
<p>I am not sure of the proper way to say Joomla yet; but it has been a good choice and I&#8217;m glad I went that direction. But in the end, content is King and as long as the words are written they can be moved to any CMS system.  Also to everyone looking to optimize their site or interact with Amazon WS give the new version of jsLex a try and feedback the positives and negatives so it can be made better.</p>
<p>Bob (Buffone)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rockstarapps.com/wordpress/?feed=rss2&amp;p=131</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>The end of Dr. Dobbs Journal</title>
		<link>http://www.rockstarapps.com/wordpress/?p=130</link>
		<comments>http://www.rockstarapps.com/wordpress/?p=130#comments</comments>
		<pubDate>Thu, 08 Jan 2009 04:20:47 +0000</pubDate>
		<dc:creator>Interjag</dc:creator>
				<category><![CDATA[Announcement]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[Annoucement]]></category>
		<category><![CDATA[Dr. Dobbs]]></category>

		<guid isPermaLink="false">http://www.rockstarapps.com/wordpress/?p=130</guid>
		<description><![CDATA[I just read on news.ycombinator.com via Eric.Weblog via Z trek that the Programming Magazine Dr. Dobbs will no longer be publishing it&#8217;s normal monthly rag.  Click for Dr. Dobbs take.  That really stinks.  Even though I don&#8217;t read it regularly any more.  When I started my first full-time job back in 1995, I read Dr. [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.rockstarapps.com/images/coverboy-small.jpg" width="170" align="left" border="0" height="230" hspace="10" />I just read on <a href="http://news.ycombinator.com/">news.ycombinator.com</a> via <a href="http://www.ericsink.com/entries/rip_dr_dobbs.html">Eric.Weblog</a> via <a href="http://ztrek.blogspot.com/2008/12/dr-dobbs-soon-to-become-monthly-section.html">Z trek</a> that the Programming Magazine Dr. Dobbs will no longer be publishing it&#8217;s normal monthly rag.  <a href="http://www.ddj.com/linux-open-source/212700891">Click for Dr. Dobbs take.</a>  That really stinks.  Even though I don&#8217;t read it regularly any more.  When I started my first full-time job back in 1995, I read Dr. Dobbs and MSJ (Microsoft System Journal) every month.</p>
<p>Back then both of those magazine were sold at newsstands and bookstores, so every month I would go with my girlfriend now wife to Borders and buy the latest copy of each magazine.  My wife has way different tastes then me so she got&#8230; actually not sure she got, I was busy reading my magazines. In the early days of my career, I always looked to the publication to learn new programming technique, and spark new ideas. Dr Dobbs was throughout the time I read the magazine high quality and packed with a variety of programming languages and implementation ideas.  Variety, I felt was one of its greatest attributes.  It never seemed to focus in one area but rather gave an introduction to many different things.  This was completely opposite to MSJ which focused for obvious reasons on Microsoft (This was a great magazine as well).<span id="more-130"></span></p>
<p>Then I moved and instead of the bookstore run; I bought a subscription to the magazines.  At one point, I had around a hundred of each magazine piled up in my office at work.  My wife always asked every time the subscription came due.  &#8220;Are you sure you want to renew?&#8221; and year after year I did.</p>
<p><strong>Becoming Published</strong></p>
<p>Since the first time I read the magazine, I was intrigued by the idea of getting published in a magazine.  It always seemed like something I wanted to do, though I never really understood how it happened or if I could do it, but I always put it in my goals for the upcoming year during my review.</p>
<p>Today getting published means a lot less than it did then, from an effort and focus standpoint.  Anyone with a computer can publish an article on the web, which is awesome, the more information the better.</p>
<p>Writing for an magazine is much different than Blogging.  Blogging is passion driven (Kind of like this article), get an idea, bang it out, proof read, then syndicate.  If I never finished this article, only I and the Wordpress software would know.</p>
<p>The publication process for a magazine involves many more people, there are things to manage, deadlines to meeting, and people to please &#8211; editors and readers. So when you pitch and idea to a magazine, the Marketing team talks to the magazines associate editors which will pitch the idea internally and get approval. If the idea is approved, then a place in the magazine needs to be found &#8211; which month and the length.  Once these are determined the magazine communicates back to the marketing people and then to you. This process can take one to three months, if in that time you didn&#8217;t write the article, the passion for the idea may have left.  This means that instead of being able to bang out the article completely on the adrenaline caused by the passion for the idea. The process turns into a task, ugh, a task for writing an article is no different from any other task that you need to complete. Its Work.  This is where the marketing team places their most critical role.  Nagging.  Every week, then every day and then every hour the marketing people ask &#8220;when you will be finished?&#8221; Finally you give them the article and they proof read it, then you re-read and finally it goes of to the magazine and they edit and then you are finished with everything except waiting.  At this point you are just sitting and waiting and nagging, the marketing people when the article will be coming out. Finally you get the magazine with your article printed on glossy paper and it all seems worth it.</p>
<p><strong>Goal was met</strong></p>
<p>Over the last few years, I have been published in a many different magazines, but never Dr. Dobbs.  Many times I had talked to my marketing department and said &#8220;What about Dr. Dobbs?&#8221; I have spoken at their conference, why don&#8217;t we pitch them an article idea. Then&#8230; this summer my PR person emailed me and said fill out this Dr. Dobbs Developers Diary, so I did. Now I was left to waiting and nagging the marketing team on the publication date. For the first four months after completing the Diary interview, I would check weekly on the Dr. Dobbs site to see if the article had been published and nothing.  Then I lost track of the whole thing.  One day while satiating my Google Analytics apdiction, I noticed multiple hits from the Dr. Dobbs site.  Bingo.  I went to the site and what was the first I saw? My giant head on the cover of the magazine (<a href="http://www.nxtbook.com/nxtbooks/cmp/ddj0109/index.php">Click to see the online version</a>). Holly shit, how did that happen? I never really thought that I would be on the cover from my &#8220;Developers Diary&#8221; interview&#8230; which made it even more awesome.</p>
<p>Finally, I got the physical copy of the magazine and brought it home to keep forever and to surprise my family. My family has seen my face in videos and pictures on the web, but there is something different and special about seeing it on an actual magazine cover.  My son could barely stand because he was laughing so hard and my wife just thought it was a fake. It&#8217;s been a month since I have gotten the magazine and it sits to my right, in plain site until I can get it framed.</p>
<p>I am glad I finally got published in the magazine and if the person that putting me on the cover reads this, I greatly appreciate it,</p>
<p>Bob (Buffone)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rockstarapps.com/wordpress/?feed=rss2&amp;p=130</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>2009 will be a Rockstar year</title>
		<link>http://www.rockstarapps.com/wordpress/?p=129</link>
		<comments>http://www.rockstarapps.com/wordpress/?p=129#comments</comments>
		<pubDate>Wed, 07 Jan 2009 13:54:11 +0000</pubDate>
		<dc:creator>Interjag</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Compression]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jsLex]]></category>
		<category><![CDATA[Performance]]></category>

		<guid isPermaLink="false">http://www.rockstarapps.com/wordpress/?p=129</guid>
		<description><![CDATA[Thanks to everyone!
One of my apdictions is Google Analytics and over the last several days I have noticed an up tick in amount of traffic the jsLex tool has been getting. This is a result of two recent posts;

Kevin Hackman of Aptana linked to the jsLex tool in a news article on Aptana&#8217;s website.
Forum post [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Thanks to everyone!</strong></p>
<p>One of my apdictions is Google Analytics and over the last several days I have noticed an up tick in amount of traffic the jsLex tool has been getting. This is a result of two recent posts;</p>
<ol>
<li>Kevin Hackman of <a href="http://www.aptana.com">Aptana</a> linked to the jsLex tool in a news article on Aptana&#8217;s website.</li>
<li>Forum post on the ExtJS website, <a href="http://extjs.com/forum/showthread.php?t=55711">click here to see post</a>.</li>
</ol>
<p>Thanks to the people that have used jsLex to this point and to those who link to and talk about the tool a double thanks.  There is no better way to get the word out then to have people talk about the tool as satisfied user.</p>
<p>The other thing that I noticed in Google Analytics: there are quite a few searches for &#8220;jsLex ant&#8221;.  I am taking this to mean that people want to use the jsLex concatenation and compression tools via ant.  To those who are searching for this, is this a correct assumption? If so, I can whip this up for you to use<span id="more-129"></span></p>
<p><strong>Expanding Rockstarapps.com</strong></p>
<p>Over the last two years I have been working different facets of Web and Ajax performance and have created the jsLex profiling and Web Optimization tools.  Over the last several months I have been experimenting and coding up a storm on a new optimization suite that takes the current jsLex tool and makes systematic optimization to a complete application.</p>
<p>There is a lot more that can be done in the area of web optimization.  So far the tools that I and others have created are pretty &#8220;simplistic&#8221; not in functionality but in the ability to understand a web application and optimize the application rather than the artifacts.  This is the area the new tool will attach.  take application &#8220;A&#8221; and an optimized version of the application.</p>
<p><strong>The next Storm<br />
</strong></p>
<p>Every few years a new software &#8220;revolution&#8221; seems to occur &#8211; 2009 looks to be the year of the &#8220;Cloud&#8221;; Aptana, Microsoft, Amazon, Rackspace, Sun&#8230; have or will have shortly cloud infrastructure.  My feeling is Cloud will have a significant impact on many areas of software.  For rockstarapps the area, we will be applying Cloud to is Web performance.  Cloud will be a driving factor in Web optimization for one significant reason &#8211; $$$$.  As people move application to the Cloud.  There will be a high visibility of the cost for applications running in a Cloud environment as people look to justify it against the application on their own hardware/systems.</p>
<p>This is where Rockstarapps and Web optimization comes in.  Application deployments within a Cloud are typically priced in the following ways.</p>
<ul>
<li><strong>CPU time </strong>- usually some prices per hour.  Amazon prices EC2 $0.10 an hour for a &#8220;small&#8221; unix machine.  <a href="http://aws.amazon.com/ec2/#pricing">Click here for the full price sheet</a>.</li>
<li><strong>Storage Space</strong> &#8211; Simple Storage Service by Amazon &#8211; $0.150 per GB – first 50 TB / month of storage used. <a href="http://aws.amazon.com/s3/#pricing">Click here for a full pricing sheet.</a></li>
<li><strong>Bandwith </strong>- CloudFront Amazon&#8217;s CDN &#8211; $0.170 per GB. <a href="http://aws.amazon.com/cloudfront/#pricing">Click here for a full pricing sheet.</a></li>
<li><strong># of Requests</strong> &#8211; CloudFront Amazon&#8217;s CDN &#8211; $0.012 per 10,000 <span class="caps">GET</span> requests. <a href="http://aws.amazon.com/cloudfront/#pricing">Click here for a full pricing sheet.</a></li>
</ul>
<p>Web Optimization and Price reduction in cloud deployments are completely aligned.  Using tools like jsLex will mean you can get an <a href="http://en.wikipedia.org/wiki/Unassisted_triple_play">unassisted triple play</a> (rare occurance  in baseball) on every application.</p>
<ul>
<li>Decrease cost of application deployments
<ul>
<li>CPU Time &#8211; limited impact.</li>
<li>Storage space &#8211; small impact.</li>
<li>Bandwith &#8211; Significant impact.</li>
<li># of Requests &#8211; Significant impact.</li>
</ul>
</li>
<li>Increase Application Responsiveness</li>
<li>Simplification of both.</li>
</ul>
<p><strong>Sneak Peak at the new product!</strong></p>
<p>I have embedded a video of the new product from Rockstarapps, which will consist of two main features.</p>
<p><object width="499" height="376"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=2746314&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=2746314&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="499" height="376"></embed></object><br /><a href="http://vimeo.com/2746314">Cloud Management and Deployment tools</a> from <a href="http://vimeo.com/user377399">Bob Buffone</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<ol>
<li><strong>Amazon Cloud Management Suite</strong> &#8211; A set of eclipse plugins that allows developers to interact and manage all aspects of Amazon Web Services Platform (Ec2, S3, CloudFront, Simple Queue Service,  SimpleDB)</li>
<li><strong>Cloud Deployment</strong> &#8211; Complete application optimizer and deployer that understands the way in which web applications are put together. The tool allows developers, build engineers or IT to optimize the an application using an extensible set of &#8220;optimizer&#8221; delivery the greatest possible performance with the no impact on development. Once optimized the application can be deployed into Amazon&#8217;s CloudFront and into the applications</li>
</ol>
<p>Check out the video and let me know your thoughts on the new product and anything else related to&#8230; well&#8230; anything. Any thoughts on a name for the product would be helpful as well.</p>
<p>The new product should be released in beta form shortly.</p>
<p>Bob (Buffone)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rockstarapps.com/wordpress/?feed=rss2&amp;p=129</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Ajax: Still confusing for developers</title>
		<link>http://www.rockstarapps.com/wordpress/?p=121</link>
		<comments>http://www.rockstarapps.com/wordpress/?p=121#comments</comments>
		<pubDate>Fri, 17 Oct 2008 14:09:08 +0000</pubDate>
		<dc:creator>Interjag</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[Widget]]></category>

		<guid isPermaLink="false">http://www.rockstarapps.com/wordpress/?p=121</guid>
		<description><![CDATA[Over the last three years a tremendous effort has been made in the area of Ajax.  Toolkits, documentation, best practices, tools and tons and tons of applications have been created to make it easier for people to take advantage of Ajax in their own projects.   You can look around the web and read sites [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.rockstarapps.com/wordpress/wp-content/uploads/2008/10/istock_000006103839xsmall_200.jpg" align="left" hspace="10" />Over the last three years a tremendous effort has been made in the area of Ajax.  Toolkits, documentation, best practices, tools and tons and tons of applications have been created to make it easier for people to take advantage of Ajax in their own projects.   You can look around the web and read sites like; <a href="http://www.ajaxian.com">ajaxian.com</a> and <a href="http://www.dzone.com">dzone.com</a> to get the latest info and tip to make your site sparkle. The development community has taken charge and created great Ajax libraries like <a href="http://jquery.com/">jQuery</a>, <a href="http://www.dojotoolkit.org">Dojo</a>, <a href="http://www.prototypejs.org/">Prototype</a>, <a href="http://mootools.net/">Mootools</a>, <a href="http://code.google.com/webtoolkit/">GWT</a>.., which remove many of the issues a developer will run into with creating Ajax applications. Tool provides like; <a href="http://www.aptana.com">Apatana</a>, <a href="http://www.eclipse.org">Eclipse</a> WTP, <a href="http://getfirebug.com/">Firebug</a>, and <a href="http://www.nexaweb.com">Nexaweb</a> are continuing to release new versions with upgraded features, which simplify development.  But still it seems something is missing.</p>
<p><span id="more-121"></span></p>
<p><strong>In the trenches:</strong></p>
<p>Having worked at Nexaweb for the last five plus years building a Rich Internet Application Platform and tools and using Ajax libraries and tools, I have seen and committed many mistakes when it comes to building Ajax applications.  One of the biggest I have done myself &#8211; was not adapting my skills and methodology to JavaScript, instead I trivialized JavaScript and tried to simply port Java and C++. This caused major issues in the performance, stability, and maintainability of the codebase.</p>
<p>I also have worked with others educating them on Ajax performance and usage of Ajax inside of customer engagements and in the general community.  One of the areas I have seen the biggest challenge with still today is simply getting up and running. It is at this point in the project you will make or break it and if not break it, you will cause yourself lots of pain redoing it. The rest of the article is dedicated to what you should know before starting your project.</p>
<p>Now, I will add a disclaimer &#8211; &#8220;not all rules apply to all projects&#8221;.  This is one of the problems and why I have included a very simple histogram to depict what kind of Web application I am talking about.</p>
<p align="center"><img src="http://www.rockstarapps.com/wordpress/wp-content/uploads/2008/10/continuousexperience.png" border="2" /></p>
<p>The Y Axis measures the complexity and richness of the user experience.  As the complexity increases the more demanding the application becomes on the underlying User Agent. At some point your application will need to make the transition from:</p>
<ul>
<li> An HTML to a page-based Ajax Application</li>
<li> Page-based Ajax Application to a Single-page Ajax Application</li>
<li> Single-page Ajax Application to a Plugin-based Web Application</li>
<li> Plugin-based Web Application to a Desktop Application</li>
</ul>
<p>Each of these different types of applications means different things for your team, skills and the software required.  As I talk about in #3 start with your requirements and let them drive you into the right bucket.  Choosing wrong will mean lots of pain, not the &#8220;Saw V&#8221; kind of pain, but pain non-the-less.<br />
<strong>Some rules of engagement:</strong></p>
<p>Number 1: <strong>It&#8217;s still a Web Application</strong> <strong>-</strong> An Ajax application is still a Web application and all the best practices and skills necessary for Web applications still apply. However, you will need a few more skills to be successful; Advanced JavaScript, CSS and DOM modifications are all necessary skills for Ajax applications.</p>
<p style="text-align: center"><img src="http://www.rockstarapps.com/wordpress/wp-content/uploads/2008/10/partition.png" border="2" /></p>
<p>So what is different? Well the image above shows what&#8217;s different.  In the Web application days of yesteryear all of the logic was on the server-side and you application didn&#8217;t worry about the client.  Development was quite &#8220;simple&#8221;: applications only had state, data and logic in one and that was the server.  In an Ajax Application as your application increases up the complexity curve; you need more state, data and logic on the client, which creates a more client/server like experience.</p>
<p>Distribution of the state, data, and logic or Model/View/Controller to the client increases complexity of your application  not just 2 times but 3 to 4 times. Developers will need to manage both the client and server MVC as well as the synchronization of the state and data.</p>
<p align="center"><img src="http://www.rockstarapps.com/wordpress/wp-content/uploads/2008/10/dmvc.png" border="2" /></p>
<p>Ajax or XHR more specifically allow developers to create their own home grown synchronization infrastructure.  Some frameworks have the distribution built-in <a href="http://www.nexaweb.com">Nexaweb</a> and Icefaces, DWR, Seam all provide functionality that will make it easier to synchronize state and data as well as call controller logic on either side of the Network. This great simplifies Ajax development.  Even page-based sites like <a href="http://www.dzone.com">dzone.com</a> and <a href="http://www.infoq.com">infoq.com</a> use DRW to page data.  The <a href="http://dojoe.nexaweb.com">dojo.E</a> project also allow developers to control state from the server-side through a declarative modification language that can be outputted from the server.</p>
<p>Another thing that will simply this complexity is services.  I talk more about this in number 7.</p>
<p>Number 2:<strong> Know your application Requirements &#8211; </strong>Figuring out what your application requirements are seems like a no-brainer but you will need to think about some simple things.  Do I want the back and forward buttons to work?  If so, where do I want them to work in my application? Do I want a certain state to be bookmarkable?  The answers to these questions are probably yes.  It&#8217;s on the web someone is going to interact with it as if it was a Web application.  Eventually people will learn the &#8220;Back&#8221; and &#8220;Forward&#8221; buttons don&#8217;t work in your application, although if people hit the buttons, then they probably should work. Do I want my application to work offline? Do I want a web application feel or a desktop application feel? How long will someone be using the application?</p>
<p>Answering these questions and ones like it will determine where on the user experience curve your application goes.</p>
<p>Number 3:<strong> Pick the Right &#8220;Toolkit&#8221; -</strong> In the opening paragraph, I mentioned 5 libraries but could have mentioned a whole bunch more; Backbase, GWT, Echo2, Wicket, Tibco GI&#8230; and then all the plugin libraries and even desktop framework.  In the break down of Ajax toolkit options below, I have included only the &#8220;Client-side&#8221; Ajax libraries. Each library is located where its &#8220;center of gravity&#8221; is.  This doesn&#8217;t mean the library can&#8217;t be used outside of this. But just like gravity the farther you get away from the center the less &#8220;pull&#8221; you&#8217;ll get. Want to build a full screen single page Ajax application with just Dojo core and you will need to do a lot of work. The opposite of this is true as well; use a large library for something small and you will need to do a lot drudging through stuff that isn&#8217;t needed and spend time shrinking it down.</p>
<p style="text-align: center"><img src="http://www.rockstarapps.com/wordpress/wp-content/uploads/2008/10/continuousexperience21.png" border="2" /></p>
<p>I didn&#8217;t include any server-side frameworks like; Echo2, Wicket or JSF products, these libraries I would place in the Single-Page Ajax application space.</p>
<p>Number 4: <strong>*Don&#8217;t over do it*</strong> &#8211; This is an addendum to #3. I see lots of new sites out there that make a full page web application when it isn&#8217;t needed.  Creating a simple Ajax application or adding some Ajax widgets might be all that is needed.  Putting your application into the right bucket will give you a much better user experience. I still think the <a href="http://www.google.com/analytics">Google Analytics</a> application is one of the Best Ajax application&#8217;s that has been built.  It&#8217;s a simple page-based, which uses Ajax and Flash in just the right way.  The creators of the application could have went crazy and used GWT and built a single page web application.  Then again why would Google use GWT? Even though I like Analytics there are still Ajax things that bother me; why can&#8217;t I use the &#8220;back&#8221; button when navigating my &#8220;Top Content&#8221; data with the paging bar?</p>
<p>At Nexaweb we have both an Ajax Client and a Java Client; so I see first hand how people get confused on what richness is needed for an application.  Having both Ajax and Java is great for customers looking to build multiple new applications or modernizing a portfolio of applications; we can cover the complete complexity.  One vendor &#8211; multiple client technologies a good choice for enterprises.</p>
<p>Having both Ajax and Java also causes confusion; When/Why should a use Ajax vs. Java? Below is a table of the advantages</p>
<table width="100%">
<tr>
<td width="50%">======<br />
Ajax<br />
======<br />
Short App Lifecycle/Quick use<br />
3rd Party Components<br />
Zero Install<br />
mashup / web2.0 / Ajax<br />
RIA<br />
B2C.com<br />
Simple<br />
Page-Based<br />
Enhance a .com &#8211; add widgets, messaging, animation<br />
Portal Integration</td>
<td width="50%">======<br />
Plugin<br />
======<br />
Long App Lifecycle/Long Use<br />
Full screen<br />
Large data<br />
lots of screens<br />
High Performance custom UI<br />
lots of realtime data (forExchange)<br />
maintenance<br />
productivity<br />
development tools (debugging)<br />
data entry &#8211; call enter<br />
$ = Key stroke/min</td>
</tr>
</table>
<p>Single-page Ajax applications fall into the Plugin column but the amount of data and complexity of the application will be smaller than their Plugin cousins.</p>
<p>Number 5: <strong>Don&#8217;t under estimate JavaScript</strong> &#8211; function validateForm(){} is easy; building an Ajax application is tough. Underestimating or being dismissive about the capabilities of JavaScript will lead to trouble.  Not the kind of trouble that happens when a group of teen agers goes camping in the woods but trouble non-the-less. Attended a Douglas Crockford presentation on JavaScript and you will realized that mastering JavaScript will allow you to truly successful at building a great library or Ajax application.  A good book to read is <a href="http://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742">JavaScript: The Good Parts</a>. Learning JavaScript takes as much time as any other language, the complexity comes in the application of it&#8217;s simplicity and dynamic-ness (Not sure that is a word).</p>
<p>Number 6: <strong>Performance will be a problem </strong>- Don&#8217;t believe me &#8211; run YSlow! on your application and if you don&#8217;t score an F the first time I will give you a free dojo.E T-Shirt.  Send me a screen shot of your application with a B or better and I will send you the T-Shirt.</p>
<p>It is amazing, Web development has been around for 10 years plus and a core software development requirement like performance is still not easy. I have been working at performance and created samples and the jsLex project to make it easier to create highly performant web application. Others have contributed quite a bit to improving performance as well; YSlow, YUICompressor, Dojo Build System, Dean Edwards Packer.  Though even with these tools I still think more can be done.  It would be nice to see a tool like jsLex integrated into Aptana, Visual Studio, Dream Weaver,&#8230; No one should ever have an excuse for scoring below a &#8220;C&#8221; on YSlow! test.  Wouldn&#8217;t be nice to bring that &#8220;A&#8221; home and put it on your refrigerator.</p>
<p>Number 7: <strong>Start with services</strong> &#8211; Don&#8217;t get so caught up in the client-side and forget to create your application in a services oriented architecture. I used little s-o-a because it doesn&#8217;t need to follow the traditional &#8220;SOA&#8221; conventions but it does need to be service oriented.  Starting with services and building your application on top of them will mean you have added more flexibility and maintainability into your application right from the beginning.  I haven&#8217;t ever built an application that was service driven and been upset with myself in the end.  We are too far along in application development to build monolithic web applications.  Once finished, someone will come up to you and want a piece of the functionality integrated into a different application or into a portal.</p>
<p>Services in today&#8217;s application development is less to do about governance (Though it is important) and SOAP than they are about portability of data and widgets across multiple formats and front-ends.  Eventually you will need your data exposed to everyone and your application integrated into Facebook or your corporate portal.</p>
<p>I mentioned in #1 that the Distributed Model View Controller will become easier if you build your application on services.  There are a couple of reasons for this:</p>
<ol>
<li>The service boundary will force you to maintain a clear separation between UI logic and Business logic.  Mixing these on the server as well as the client turns your application into a complete mess.  Not the kind of mess my kids can make with a blender, a cartoon of eggs, milk and flour but a mess non-the-less.</li>
<li>You will be able to reuse the work that goes into the services unmodified.</li>
</ol>
<p>*Note: I will be righting more about services in an upcoming Blog.<br />
Number 8, 9 and 10: <strong>Add your own</strong> &#8211; I could only come up with 7 and a top seven list doesn&#8217;t have the same ring as a top ten list &#8211; I blame the metric system. So add to the comments other ideas for rules to follow.</p>
<p><strong>Summary:</strong></p>
<p>Hopefully these rules of engagement help you in your <strike>Ajax</strike> Web Application projects whether you are just getting started or working on kicking off your seven project.  This post was inspired by a recent &#8220;customer&#8221; conversation I had and hope their project turns out right.</p>
<p>See everyone at AjaxWorld,<br />
Bob (Buffone)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rockstarapps.com/wordpress/?feed=rss2&amp;p=121</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Dojo Developer Day or Two</title>
		<link>http://www.rockstarapps.com/wordpress/?p=119</link>
		<comments>http://www.rockstarapps.com/wordpress/?p=119#comments</comments>
		<pubDate>Tue, 30 Sep 2008 01:16:01 +0000</pubDate>
		<dc:creator>Interjag</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[Dojo]]></category>
		<category><![CDATA[dojo.E]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://www.rockstarapps.com/wordpress/?p=119</guid>
		<description><![CDATA[It&#8217;s been awhile since I last Blogged on rockstarapps.com.  In between my last Blog on May 26th and Today, I have been spending much of my time working on building the dojo.E library and traveling around the world (Koren, San Fransisco).  This week is the Ajax Experience Conference, which is one of my favorite conferences [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.rockstarapps.com/wordpress/wp-content/uploads/2008/09/ddd.jpg" style="margin-right: 15px" alt="ddd" align="left" />It&#8217;s been awhile since I last Blogged on rockstarapps.com.  In between my last Blog on May 26th and Today, I have been spending much of my time working on building the <a href="http://dojoe.nexaweb.com">dojo.E library</a> and traveling around the world (Koren, San Fransisco).  This week is the Ajax Experience Conference, which is one of my favorite conferences and one I have attended three times and talked at twice.  In coordination with the conference were two dojo developer day meetings.</p>
<p>Each day was filled with great information and a lot of cool demos. I was extremely impressed with what I saw. The things people are doing are way more advanced then simple Ajax enhancements. The are truly pushing the Browser, DOM, JavaScript to the edge. I saw fully native and cross browser charting and graphics; get these features right will mean Ajax over the next several years will be able to compete with the plugins (once IE6 is put to pasture).</p>
<p><em>Below are my take-a-ways from the two days listening to Dojo talks.</em></p>
<p><span id="more-119"></span></p>
<p><strong>Why would an Enterprise or Individual Developer choose Dojo: </strong></p>
<ol>
<li>Covers the complete spectrum of Ajax applications.</li>
<li>Provides a well thought out foundation to build on
<ol>
<li>Packaging</li>
<li>Extensibility</li>
<li>Unit testing framework</li>
</ol>
</li>
<li>Has enterprise backing (IBM&#8230;) Check out <a href="http://www.projectzero.org">projectzero.org</a>
<ol>
<li>Large companies provide developers to the dojo foundation?</li>
</ol>
</li>
<li>Lots of widgets, not just quantity but quality</li>
<li>Internationalization and accessibility are core to the dijit library not an after thought.</li>
<li>Support options through Sitepen.</li>
<li>Strong core team &#8211; I met a bunch of them previously but everyone else was just as strong and passionate about dojo.</li>
<li>It’s really the only open “foundation” in the Ajax market.</li>
<li>Now back the development of DWR.</li>
<li>Commercial Friendly License.</li>
<li>Commercial products like <a href="http://www.nexaweb.com">Nexaweb</a> are built on top of dojo.</li>
</ol>
<p>Even though I have been using dojo for two years, over the last two days I learned quite a bit. Any developers out there that may not have gotten into Dojo yet, may find it quite a large and unwieldy project. To make it simpler to get your arms think of Dojo along its four major pieces of functionality.</p>
<p><strong>dojo:</strong></p>
<p>If you are looking for that little Ajax library to add to your web page, which can do all the &#8220;Ajax&#8221; things easily, the dojo package contains all the stuff you need.</p>
<ul>
<li><strong>CSS Selector functionality</strong> &#8211; dojo.query(&#8221;#myDiv&#8221;); //returns you an array of nodes that match your css selector.</li>
<li><strong>Animations </strong>- dojo.fadeIn | fadeOut | aminateProperty- Plus more effects in the dojox.fx package.</li>
<li><strong>DOM Manipulation</strong> &#8211; dojo.style | place | attr | addClass | removeClass | toggleClass.  This is the one area that is under valued in the Dojo library. Most Ajax application need a complete set of DOM manipulation functions and dojo has the basics as well as the more complex functionality that you will need once you get your hello world application finished.</li>
<li><strong>Browser functions</strong> &#8211; dojo.isFF | isIE | isSafari &#8211; Once you step out on your own, you may <img src='http://www.rockstarapps.com/wordpress/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  need to know if you are in IE. These properties make it easy figure that out.</li>
<li><strong>Eventing </strong>- dojo.connect | disconnect | stopEvent &#8211; Need to capture events on DOM nodes or want to supply events on your own object, these functions will make it easy to do just that.</li>
<li><strong>Object Oriented Programming</strong> &#8211; dojo.declare | mixin | extend &#8211; This is where I think that Dojo adds huge benefits and why I use dojo for my applications. Using these functions along with the dojo.require and dojo.provides means that your application and knowledge will scale easily to more complex functionality.</li>
<li><strong>Packaging </strong>- dojo.require | provides &#8211; Provides functionality &#8220;similar&#8221; to the Java package and import functionality.  These functions make it possible to partition large applications into separate JavaScript files. If you are dealing with a large codebase this is the only functionality I have seen that will reduce packaging time and increase maintainability.</li>
<li><strong>Language Enhancements</strong>  &#8211; dojo.isString | isArray | isFunction | isObject| trim &#8211; You may need these when building your application or handling data in a generic way.</li>
<li><strong>Array Operations</strong> &#8211; dojo.forEach | lastIndexOf | indexOf | map | filter -Extra Array functions are always nice to make code simpler.</li>
<li><strong>XHR </strong>- dojo.xhrGet | xhrPost | rawXhrPost |formToObject | objectToQuery | formToQuery | formToJson &#8211; I almost forgot about these until I went to the <a href="http://www.dojocampus.org/">dojocampus.org</a> website.</li>
<li><strong>Console and logging features</strong> &#8211; console.info | debug | error | warn &#8230; &#8211; You can use these functions to debug your application. The messages will go either to firebug&#8217;s console or if you are using a browser other than Firefox add &#8220;debug:true&#8221; to djConfig and you will get a console window in your application.</li>
<li><strong>Drag and Drop</strong> &#8211; dojo.dnd.* &#8211; Built in support for dragging and dropping just about anything.</li>
<li><strong>Data </strong>- dojo.data.* &#8211; has a fully extensible framework creating data driven applications.  Developers can extend the dojo.data functionality to add there own custom data types. Widgets can use the dojo.data functionality to make applications more MVC like.  Pull data from the server and let the widget and dojo.data take care of the rest.</li>
</ul>
<p><strong>dijit: </strong></p>
<p>Have the need for Widgets?  The dijit package is you.  Not only does Dojo come with a large set of widgets that will meet most of your application needs.  The architecture behind the widgets is well-thought out and easy for developers to leverage in their own widgets.</p>
<ul>
<li><strong>The widgets &#8211; </strong>I will try to list them all, but a simple list won&#8217;t do them justice.
<ul>
<li><strong>Widgets </strong>- Dialog, Menu, ProgressBar, ColorPalette, Tree, TitlePane, Toolbar</li>
<li><strong>Layouts </strong>- Accordian, Content, Link, SplitPane, TabControl, Stack, Border</li>
<li><strong>Forms </strong>- Button, CheckBox, ComboBox, CurrencyTextBox, DateTextBox, FilteringSelect, Form, NumberSpinner, Slider, TextBox, TimeTextBox&#8230;</li>
</ul>
</li>
<li><strong>Theming </strong>- Dojo includes three themes for the building applications: Tundra, Soria, Nihilo and they can be applied to all widgets in the dijit package by including the css file and setting the class name on the body tag: &lt;body class=&#8221;tundra&#8221;&gt;  This needs to be set somewhere, I usually do the body tag. Not doing this will mean no styling.</li>
<li><strong>Build your own</strong> &#8211; If there isn&#8217;t a widget that you need, creating your own can be done in just a few lines of code.</li>
</ul>
<p><code><br />
dojo.declare("rockstarapps.Concert", [dijit._Widget, dijit._Templated], {</code></p>
<p>myDiv: null,<br />
bandName: &#8220;&#8221;,<br />
//You will want to use a templatePath and externalize the template in<br />
//separate file and make it more maintainable.</p>
<p>templateString:  &#8216;&lt;div dojoAttachPoint=&#8221;myDiv&#8221;    dojoAttachEvent=&#8221;onclick:_onClick&#8221;&gt;${bandName}&lt;/div&gt;&#8217;,</p>
<p>_onClick: function(e){<br />
this.onTicketPurchased();<br />
dojo.style(this.myDiv, &#8220;fontSize&#8221;, 24);<br />
} ,</p>
<p>onTicketPurchased: function(){}</p>
<p>});</p>
<ul>
<li><strong>Using the Widgets</strong> &#8211; Widgets are easy to embed directly into your HTML. Do the following three steps:
<ul>
<li>Add parseOnLoad: true to your djConfig.  &lt;script src=&#8221;dojo.js&#8221; djConfig=&#8221;parseOnLoad:true&#8221;&gt;&lt;/script&gt;</li>
<li>Require the dojo.parser functionality &#8211; dojo.require(&#8221;dojo.parser&#8221;);</li>
<li>Add a dojoType attribute to a div with the &#8220;rockstarapps.Concert&#8221; as the value.</li>
</ul>
</li>
</ul>
<p>&lt;div dojoType=&#8221;rockstarapps.Concert&#8221; bandName=&#8221;RollingStones&#8221; onTicketPurchased=&#8221;alert(&#8217;You are going!!!!&#8217;)&#8221;&gt;&lt;/div&gt;</p>
<p>Developers can also add widgets programmatically</p>
<p>new rockstarapps.Concert({bandName:&#8221;RollingStones&#8221;, hostDiv);</p>
<ul>
<li><strong>Internationalization and Accessibility </strong>-  Some people won&#8217;t get a big benefit from this, but for those of us that need to build &#8220;Enterprise&#8221; applications, this is a must.  All widgets in the dijit package are fully internationalized and accessible.</li>
</ul>
<p>For a complete writeup the dojo widgets go to <a href="http://dojocampus.org/explorer/">dojocampus.org/explorer/</a>, it has a full set of documentation and a widget explorer that makes finding the widgets easy.</p>
<p><strong>dojox:  </strong></p>
<p>The dojox package is where you can find a little of everything.  I watched Tom Trenka go through dojox and was trying to write down all the things in their &#8211; but could only get some of them.</p>
<ul>
<li><strong>dfx </strong>- Cross browser graphics package.</li>
<li><strong>charting </strong>- Building on the dfx package, dojox has is a set of charts that can all be run natively in the browser.</li>
<li><strong>off </strong>- Actually what is says, provides offline capability to applications.</li>
<li><strong>ddt </strong>- Dojo django Templates, Alex Russell got on stage and showed off the power of the django templates in creating a widget.  It was extremely cool. That is where I got an idea to add the ddt package to the dojoe.Macro capability.  In three lines of code I was able to make dojoe.Macros ddt compatabile.</li>
</ul>
<p><code><br />
&lt;dojoe.Macro id="sweet" format="dojox.dtl._Templated"&gt;<br />
&lt;dojoe.Place query="#host" blendMode="append"&gt;<br />
&lt;div&gt;&lt;ul&gt;<br />
{% for item in items %}<br />
&lt;li class="{{ item|length }}"&gt;{{ item }}&lt;/li&gt;<br />
{% endfor %}<br />
&lt;/ul&gt;&lt;/div&gt;<br />
&lt;/dojoe.Place&gt;<br />
&lt;/dojoe.Macro&gt;<br />
</code><br />
Now developers can execute macros and format the content with django templates and place it into the DOM anywhere anytime.  dojoe.marcos.sweet.execute({items:["Applet", "Pear", "Carrot"]});</p>
<ul>
<li><strong>widgets </strong>-My favorite thing in all of dojox may be the dojox.widget.SortList. It is super simple but an extremely cool. What is it? A Single Column Table that is sortable.</li>
<li><strong>grid </strong>- More more complex than the SortList is dojox.grid. Looking to build that enterprise application with tables,tables,tables dojox.grid might be a good choice. The grid component will be moving into the dijit library soon.</li>
<li><strong>wires </strong>- I haven&#8217;t got into dojo.wires yet, but my Co-worker (Angel) is big on this. Its a complete MVC framework building ajax applications.</li>
<li><strong>cometd </strong>- &#8220;Cometd is a scalable HTTP-based event routing bus that uses a Ajax Push technology pattern known as Comet.&#8221; leveraged from the <a href="http://cometd.com">cometd.com</a></li>
<li><strong>dojox.data</strong> &#8211; Lots and Lots of dojo.data implementation for different types of data: Flickr, Picasa, Opml, CSV, Atom, &#8230;.</li>
</ul>
<p>I am sure there are things I missed, but as it was stated during the talk &#8220;if you can think it&#8230; it may already be in there, if not create it and submit a patch to the <a href="http://trac.dojotoolkit.org/">dojo trac system</a>.&#8221;</p>
<p><strong>utils:</strong></p>
<p>All web applications need to be optimized no matter which library you are using. Dojo has created a not-so-easy but robust way to build highly optimized web applications.  Using the Dojo build system developers can segment their application into multiple JavaScript files that can be lazily loaded through out the lifecycle of thier application.   This will decrease latency of the initial loading, reduce bandwidth requirements and make your end users happy.</p>
<p>A little self promotion &#8211; Need to optimize a web application check out jsLex&#8217;s Plugins for Eclipse.</p>
<p>I wrote down the build system isn&#8217;t easy because it will take a bit of time to get it up and running.  Not sure if the following rules are absolute but they have helped my reduce time getting up and running.</p>
<ul>
<li>Use the raw source and not the already packaged distribution. I have run into issues with the packaged files not building cleanly.</li>
<li>Place the build system in the utils directory at the same level as dijit, dojo, dojox.  This was the one that I ran into over and over.  I kept trying to run the build from an external directory and had a problem every time. Put the utils directory in the right place and Bam! it worked.</li>
<li>Use the layers capability in the profile files, it will create a much more optimized application.</li>
</ul>
<p><strong>Community:</strong></p>
<p>One of the things that impressed my at the Dojo Developers Day were all the community members demo.</p>
<ul>
<li><a href="http://www.esri.com/javascript">ESRI </a>a did a demo of their use of the dojox.gfx package to build some really cool mapping applications.</li>
<li>A demo of nxExplore a search engine application that uses dojo (I think).</li>
<li><a href="http://www.ibm.com">IBM</a>&#8217;s <a href="http://www.projectzero.org">projectzero.org</a> web-based application builder. This was extremely slick. Want to take the power of dojo to the masses this application may be the way.</li>
<li><a href="http://dojoe.nexaweb.com"><strong>dojo.E</strong></a> &#8211; I will include the stuff we have been working on &#8211; it may not be sexy but it does make things easier for those who like XML and markup. Getting together with other smart people and just listening is always a great idea.  I was able to pick up a lot of useful information and got a couple of cool ideas to boot.</li>
<li>A cool password Strength widget was demoed</li>
<li><a href="http://dojotdg.zaffra.com/">Mathew Russell</a> author of <a href="http://www.amazon.com/gp/product/0596516487/">&#8220;Dojo: The Definitive Guide&#8221;</a> did several cool demos. The one that caught me eye the most was the &#8220;Graph&#8221; that used dojox.gfx to create a network topology.</li>
<li>Angel (Co-worker) &#8211; Wasn&#8217;t demoed publicly but got lots of &#8220;ohs&#8221; and &#8220;ahs&#8221; &#8211; his tab control that has the tab buttons sliding left and right instead of wrapping.  It is really sweet.</li>
</ul>
<p><strong>Things to improve apon: </strong></p>
<p>None of these things are new, just need to balance the good with the bad; the ying with the yang.</p>
<ul>
<li>Documentation &#8211; It is an issue with all things dojo is working hard in this area and the dojocampus.org.</li>
<li>Single file package of dojo &#8211; This would make is drop dead simple to include dojo into any application.</li>
<li>Simplification of the build system.  Demos that I saw of a new build system will help greatly in creating custom builds.</li>
<li>Wordpress like plugin explorer &#8211; I have created a couple wordpress plugins and like the way they manage the extensions.  They are easy to find and are consistently packaged.  I think dojo could use something like this to make finding functionality easier.  I know I find my self look for things and not finding them with out a bunch of effort.</li>
</ul>
<p>I need to get home so I can get up tomorrow and get back to the conference. Thankfully I didn&#8217;t have to travel to get to the conference other than the 15mile 1:30 commute.  I would have thought $10 billion for the new road would have cut down on the time.</p>
<p>dojo.bob(Buffone)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rockstarapps.com/wordpress/?feed=rss2&amp;p=119</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Web Optimization Plugins for Eclipse and Webinar</title>
		<link>http://www.rockstarapps.com/wordpress/?p=115</link>
		<comments>http://www.rockstarapps.com/wordpress/?p=115#comments</comments>
		<pubDate>Tue, 27 May 2008 04:33:38 +0000</pubDate>
		<dc:creator>Interjag</dc:creator>
				<category><![CDATA[Announcement]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Site Design]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Web design]]></category>
		<category><![CDATA[Website]]></category>

		<guid isPermaLink="false">http://www.rockstarapps.com/wordpress/?p=115</guid>
		<description><![CDATA[Web performance has been a topic I have been working on for quite some time now. While building Nexaweb&#8217;s Ajax library we ran into and solved many challenges that developers will face while developing their own Ajax applications. Most of my effort has been around JavaScript performance and Ajax&#8217;s impact on a websites performance.
Ajax&#8217;s Impact [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.rockstarapps.com/wordpress/wp-content/uploads/2008/05/crushed-small.jpg" style="margin-right: 10px" align="left" />Web performance has been a topic I have been working on for quite some time now. While building Nexaweb&#8217;s Ajax library we ran into and solved many challenges that developers will face while developing their own Ajax applications. Most of my effort has been around JavaScript performance and Ajax&#8217;s impact on a websites performance.<br />
Ajax&#8217;s Impact on site performance</p>
<ul>
<li>Increased Number of Requests</li>
<li>Increased Download Size</li>
<li>Increased JavaScript Code</li>
</ul>
<p><strong>Upcoming Webinar </strong></p>
<p>On Thursday at 2:00pm myself and Ryan Breen from <a href="http://www.gomez.com">Gomez </a>and <a href="http://www.ajaxperformance.com">Ajax Performance.com</a> will be giving a free 2 hour webinar covering all things performance.  Usually, I do this webinar by myself, so I am excited to get another person on board to give their perspective on Website performance. Ryan will be talking about:</p>
<ul>
<li>Survey tools available for performance analysis</li>
<li>Establish and follow a site optimization workflow</li>
<li>Explore real world examples of how to improve the end user experience</li>
</ul>
<p:colorscheme colors="#ffffff,#000000,#808080,#000000,#00cc99,#3333cc,#000000,#000000">  </p:colorscheme>
<p class="O1"><span style="font-family: Verdana; font-size: 89%"><span style="color: #ffd41f; position: absolute; left: -2.99%">▪kk</span></span></p>
<p>Go to <a href="https://nexaweb.webex.com/mw0305l/mywebex/default.do?nomenu=true&amp;siteurl=nexaweb&amp;service=6&amp;main_url=https%3A%2F%2Fnexaweb.webex.com%2Fec0600l%2Feventcenter%2Fevent%2FeventAction.do%3FtheAction%3Ddetail%26confViewID%3D171777061%26siteurl%3Dnexaweb%26%26%26">Webex.com</a> and sign up, its free, you can ask questions and we will be handing out information on how you can optimize the performance of your Website / Web application.</p>
<p><a href="https://nexaweb.webex.com/mw0305l/mywebex/default.do?nomenu=true&amp;siteurl=nexaweb&amp;service=6&amp;main_url=https%3A%2F%2Fnexaweb.webex.com%2Fec0600l%2Feventcenter%2Fevent%2FeventAction.do%3FtheAction%3Ddetail%26confViewID%3D171777061%26siteurl%3Dnexaweb%26%26%26">Sign up for the Webinar now!</a></p>
<p><span id="more-115"></span></p>
<p><strong>New Release of jsLex</strong></p>
<p>I am never one to just talk about something, if I haven&#8217;t put in effort to solve the issue in a repeatable way then I probably wouldn&#8217;t talk about it at all.  jsLex is a tool I created over a year ago that makes <strong>Website Optimization </strong>easier for developers build simple.</p>
<ul>
<li><a href="http://www.rockstarapps.com/pmwiki/pmwiki.php?n=JsLex.JsLex">jsLex Project Home </a></li>
<li><a href="http://www.rockstarapps.com/pmwiki/pmwiki.php?n=JsLex.Download">Download Now</a></li>
</ul>
<p>I have been getting a lot of good feedback on jsLex, which I have incorporating into the plugins since the release a month ago. jsLex 1.1.1 includes code to automatically build the compressed CSS and JavaScript files.  The builder listens for changes to resources and when a dependency changes rebuilds the appropriate CSS or JavaScript files.  <a href="http://www.rockstarapps.com/pmwiki/pmwiki.php?n=JsLex.WebOptimizer">Click here</a> to read more about the feature and how it works.</p>
<p><img src="http://www.rockstarapps.com/images/jsLex/jsLex/js-properties2.jpg" /></p>
<p>Just check the box and jsLex will install the first and only Web Optimization builder for Eclipse that I know about.</p>
<p>Anyone having ideas on how to make it better, send me an email, comment on the Blog or create a topic in jsLex&#8217;s <a href="http://tech.groups.yahoo.com/group/jslex_group/">Yahoo Group.</a></p>
<p>I hope everyone joins the Webinar on Thursday and downloads the latest jsLex plugins.</p>
<p>Bob (Buffone)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rockstarapps.com/wordpress/?feed=rss2&amp;p=115</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Microsoft Popfly &#8211; A nice tool for kids looking to build games</title>
		<link>http://www.rockstarapps.com/wordpress/?p=109</link>
		<comments>http://www.rockstarapps.com/wordpress/?p=109#comments</comments>
		<pubDate>Tue, 13 May 2008 14:51:34 +0000</pubDate>
		<dc:creator>Interjag</dc:creator>
				<category><![CDATA[Mashups]]></category>
		<category><![CDATA[Opinion]]></category>

		<guid isPermaLink="false">http://www.rockstarapps.com/wordpress/?p=109</guid>
		<description><![CDATA[The other day on TechCrunch was an article about Microsoft’s Popfly Mashup builder getting a game creator interface.  Previously, I looked at Popfly for building Mashups but didn’t get past the Wack-a-mole Mashup, so this time I figured I would get the only person I know who has created games.
It is a tough road [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.rockstarapps.com/wordpress/wp-content/uploads/2008/05/popfly7.jpg"><img src="http://www.rockstarapps.com/wordpress/wp-content/uploads/2008/05/popfly7.jpg" style="margin-right: 10px" align="left" /></a>The other day on <a href="http://www.techcrunch.com/2008/05/02/microsoft-introduces-popfly-for-games-in-silverlight/">TechCrunch</a> was an article about Microsoft’s <a href="http://www.popfly.com">Popfly</a> Mashup builder getting a game creator interface.  Previously, I looked at Popfly for building Mashups but didn’t get past the Wack-a-mole Mashup, so this time I figured I would get the only person I know who has created games.</p>
<p>It is a tough road getting kids who have an interest in software, started in a structured way. Game software offers many of the skills that developers will need in the long run. Products <a href="http://www.gamemaker.nl/">GameMaker</a>, Popfly and even flash give kids a nice tools that keep them interested and allow them to explore software until they are capable using structured languages.<span id="more-109"></span></p>
<p><strong>What is your background in game creation? Tools used, years of creating games?<br />
</strong><br />
I have used flash for creating games, for a while.  Then I switched to a 3D Game creator for a while, I also used GameMaker and have attended computer camps to learn about game creation.</p>
<p><strong>How did you find out about Popfly?<br />
</strong><br />
Duh, you told me about it.</p>
<p><strong>What do you look for in tools to create games?<br />
</strong><br />
I typically look for tools that have good animations and physics built in.</p>
<p>I know when I try to create games and I stress try. I find it difficult to find the basics? Character animation, physics, scene changes, collision detection, scoring… Let’s go into each of these and see what Popfly can do.</p>
<p><strong>How do you get started using Popfly?<br />
</strong><br />
<a href="http://www.rockstarapps.com/wordpress/wp-content/uploads/2008/05/popfly1.jpg"><img src="http://www.rockstarapps.com/wordpress/wp-content/uploads/2008/05/popfly1.thumbnail.jpg" style="margin-right: 10px" align="left" /></a> Go <a href="http://www.popfly.com">http://www.popfly.com</a> and click on the “Create a Game” link. Popfly allows you to create a game based on a template or from scratch. The templates make it easy to build a game without creating all the backgrounds and characters.<br />
<strong>Do they have pre-built characters and can you upload your own?<br />
</strong><br />
<a href="http://www.rockstarapps.com/wordpress/wp-content/uploads/2008/05/popfly2.jpg"><img src="http://www.rockstarapps.com/wordpress/wp-content/uploads/2008/05/popfly2.thumbnail.jpg" style="margin-right: 10px" align="left" /></a> Yes, they have a large selection of pre-made characters, machines, objects, and vehicles. What’s good about this is that they have different people for different types of games you might want to build.  Some of the characters have built in movements already connected to the keyboard events.  Only thing bad is the character set is a little limited and they are pretty cartoonish.  But you can get around this by uploading your own characters.</p>
<p><strong>What pre-built physics do they have built in?<br />
</strong><br />
You really have to set up the behaviors for the characteristics to get the</p>
<p><strong>How are screen changes done?<br />
</strong><br />
<a href="http://www.rockstarapps.com/wordpress/wp-content/uploads/2008/05/popfly4.jpg"><img src="http://www.rockstarapps.com/wordpress/wp-content/uploads/2008/05/popfly4.thumbnail.jpg" style="margin-right: 10px" align="left" /></a> You can choose how the scene will change by using different animations or go directly to the new screen. In order to get the scene to change you apply a behavior to a collision between objects.  This is what I did in my “Keyboard Maze” game.  When the smiley face hits the object at the end of the maze in the first scene it changes to scene two.</p>
<p><strong>Tell me about collision detection<br />
</strong><br />
<a href="http://www.rockstarapps.com/wordpress/wp-content/uploads/2008/05/popfly5.jpg"><img src="http://www.rockstarapps.com/wordpress/wp-content/uploads/2008/05/popfly5.thumbnail.jpg" style="margin-right: 10px" align="left" /></a> You can choose the collision edges for objects they can either be a square or a circle.  Also you can change the behavior depending on the direction of the collision.  There is a button that you can specify that an objects is either solid or not.</p>
<p><strong>What are some of the thing you would like to see improved?<br />
</strong><br />
It would be cool if there was more objects that you could use to create your games. More behaviors and presets for ways you can use your characters. Preset for timers or scores.  Also a built in character creator for creating your own characters, something like the mii creator would also be cool.</p>
<p><strong>What about scoreboards and player ranking for your games do they provide that?<br />
</strong><br />
No, that’s something I would like to see.  The ability to create leader boards and player rankings for the games would be really helpful to build a community around my games.</p>
<p><strong>Where can people access your games?<br />
</strong><br />
They can go to <a href="http://www.popfly.com">www.popfly.com</a> and search for search for “Keyboard Maze” which is my most popular game.  You can also take the games and embed them easily any html page.</p>
<p>&#8212;&#8212;&#8212;</p>
<p>Alright Zachary, that’s for help me out with my Blog article for today, great job looking into Popfly, and I look forward to playing your games.</p>
<p>Bob (Buffone)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rockstarapps.com/wordpress/?feed=rss2&amp;p=109</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
