<?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>QuadraForte LLC</title>
	<atom:link href="http://blog.quadraforte.com/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://blog.quadraforte.com</link>
	<description>Cloud Technology Specialists</description>
	<lastBuildDate>Tue, 26 Jan 2010 19:57:46 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.3</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>CloudKick sets up a freemium Server Management System</title>
		<link>http://blog.quadraforte.com/?p=79</link>
		<comments>http://blog.quadraforte.com/?p=79#comments</comments>
		<pubDate>Tue, 26 Jan 2010 19:57:06 +0000</pubDate>
		<dc:creator>paul</dc:creator>
				<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[cloudkick]]></category>
		<category><![CDATA[server management systems]]></category>

		<guid isPermaLink="false">http://blog.quadraforte.com/?p=79</guid>
		<description><![CDATA[via TechCrunch:
&#8220;&#8230;Cloudkick, a Y Combinator-incubated startup that offers a free server management system to businesses, is rolling out its freemium model and additional features. Cloudkick provides detailed graphs on the health of your servers, and tools to categorize and keep information about what each server is doing. Cloudkick’s dashboard allows you to easily add or remove servers from [...]]]></description>
			<content:encoded><![CDATA[<p>via <a title="TechCrunch on CloudKick's Freemium Server Management System" href="http://www.techcrunch.com/2010/01/25/cloudkick-rolls-out-freemium-model-for-server-management-system/" target="_self">TechCrunch</a>:</p>
<blockquote><p>&#8220;&#8230;<a href="https://www.cloudkick.com/">Cloudkick,</a> a <a href="http://www.ycombinator.com/">Y Combinator<img src="http://i.ixnp.com/images/v6.19.0.1/t.gif" alt="" /></a>-incubated startup that offers a <a href="http://www.techcrunchit.com/2009/03/16/y-combinators-cloudkick-offers-simple-cloud-management-system/">free server management system<img src="http://i.ixnp.com/images/v6.19.0.1/t.gif" alt="" /></a> to businesses, is rolling out its freemium model and additional features. Cloudkick <a href="http://www.techcrunchit.com/2009/04/24/cloudkick-now-lets-you-migrate-your-amazon-machine-images-to-slicehost/">provides<img src="http://i.ixnp.com/images/v6.19.0.1/t.gif" alt="" /></a> detailed graphs on the health of your servers, and tools to categorize and keep information about what each server is doing. Cloudkick’s dashboard allows you to easily add or remove servers from Rackspace Cloud, Amazon EC2, Linode, GoGrid, Slicehost, RimuHosting, and VPS.NET and then monitor an unlimited amount of instances. You can see all the servers in one place, and color-code and label each server&#8230;&#8221;</p></blockquote>
<p>If you&#8217;ve ever had headaches tuning your server then this service seems to be the killer cloud app/service for you!</p>
<p>What about pricing? Here&#8217;s the low-down from the <a title="Annoucing new Cloudkick features and provider support" href="https://www.cloudkick.com/blog/2010/jan/26/annoucing-new-cloudkick/" target="_self">CloudKick blog</a>:</p>
<blockquote><p>&#8220;&#8230; <strong>Pricing</strong></p>
<p style="font-family: Arial, Helvetica, sans-serif;margin-top: 6px;margin-right: 0px;margin-bottom: 6px;margin-left: 0px;font-size: 12px;vertical-align: baseline;background-color: transparent;padding: 0px;border: 0px initial initial">With the release of our new premium features, we&#8217;ve launch new pricing plans for our business users. Under these plans, you&#8217;ll get access to our advanced new monitoring tools that allow you to track metrics such as disk, load, CPU and memory. Plans range from $99 to $599&#8230;&#8221;</p>
</blockquote>
<p style="font-family: Arial, Helvetica, sans-serif;margin-top: 6px;margin-right: 0px;margin-bottom: 6px;margin-left: 0px;font-size: 12px;vertical-align: baseline;background-color: transparent;padding: 0px;border: 0px initial initial">We now know that cloud computing is serious business when startups like <a title="CloudKick Site" href="http://cloudkick.com" target="_self">CloudKick</a> build their business and revenue models on cloud management systems</p>
<p>posted by Paul <a title="Paul &quot;The Pageman&quot; Pajo in Wordpress" href="http://paulpajo.com" target="_self">&#8220;The Pageman&#8221;</a> Pajo</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.quadraforte.com/?feed=rss2&amp;p=79</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>QuadraForte conducts hands-on workshop on using the Disaster Coordination Tool in De La Salle &#8211; College of Saint Benilde</title>
		<link>http://blog.quadraforte.com/?p=72</link>
		<comments>http://blog.quadraforte.com/?p=72#comments</comments>
		<pubDate>Wed, 07 Oct 2009 19:55:18 +0000</pubDate>
		<dc:creator>paul</dc:creator>
				<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[quadraforte]]></category>
		<category><![CDATA[De La Salle - College of Sain Benilde]]></category>
		<category><![CDATA[Disaster Coordination Tool]]></category>
		<category><![CDATA[DLS-CSB]]></category>
		<category><![CDATA[Franklin Naval]]></category>
		<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[Information Systems program]]></category>

		<guid isPermaLink="false">http://blog.quadraforte.com/?p=72</guid>
		<description><![CDATA[A few hours ago, Franklin Naval conducted the first hands-on workshop on how to use the disaster coordination tool using Google Maps at the De La Salle &#8211; College of Saint Benilde (DLS-CSB). The participants were students from the VERTSOL (Vertical Solutions for Retail Markets) of the IS (Information Systems) program of DLS-CSB. Here are [...]]]></description>
			<content:encoded><![CDATA[<p>A few hours ago, Franklin Naval conducted the first hands-on workshop on how to use the disaster coordination tool using Google Maps at the <a title="De La Salle - College of Saint Benilde site" href="http://www.dls-csb.edu.ph" target="_self">De La Salle &#8211; College of Saint Benilde (DLS-CSB)</a>. The participants were students from the<a title="Vertical Solutions for Retail Markets in DLS-CSB" href="http://vertsol.org" target="_self"> <strong>VERTSOL</strong> (Vertical Solutions for Retail Markets)</a> of the <a title="BSIS program of DLS-CSB" href="http://www.dls-csb.edu.ph/default.asp?section=200&amp;what=1000111" target="_self">IS (Information Systems) program</a> of DLS-CSB. Here are some pictures:</p>
<table border="0">
<tbody>
<tr>
<td><a href="http://www.facebook.com/album.php?aid=126930&amp;id=136098697422"><img src="http://photos-f.ak.fbcdn.net/hphotos-ak-snc1/hs241.snc1/8817_149300447422_136098697422_3209389_7872319_s.jpg" border="0" alt="Quadraforte conducts Disaster Coordination Tool with Google Maps workshop in DLS-CSB" /></a></td>
<td><a href="http://www.facebook.com/album.php?aid=126930&amp;id=136098697422"><img src="http://photos-g.ak.fbcdn.net/hphotos-ak-snc1/hs261.snc1/8817_149300457422_136098697422_3209390_301630_s.jpg" border="0" alt="Quadraforte conducts Disaster Coordination Tool with Google Maps workshop in DLS-CSB" /></a></td>
<td><a href="http://www.facebook.com/album.php?aid=126930&amp;id=136098697422"><img src="http://photos-h.ak.fbcdn.net/hphotos-ak-snc1/hs261.snc1/8817_149300462422_136098697422_3209391_1706561_s.jpg" border="0" alt="Quadraforte conducts Disaster Coordination Tool with Google Maps workshop in DLS-CSB" /></a></td>
</tr>
<tr>
<td><a href="http://www.facebook.com/album.php?aid=126930&amp;id=136098697422"><img src="http://photos-a.ak.fbcdn.net/hphotos-ak-snc1/hs261.snc1/8817_149300472422_136098697422_3209392_7907280_s.jpg" border="0" alt="Quadraforte conducts Disaster Coordination Tool with Google Maps workshop in DLS-CSB" /></a></td>
<td><a href="http://www.facebook.com/album.php?aid=126930&amp;id=136098697422"><img src="http://photos-b.ak.fbcdn.net/hphotos-ak-snc1/hs261.snc1/8817_149300477422_136098697422_3209393_1581409_s.jpg" border="0" alt="Quadraforte conducts Disaster Coordination Tool with Google Maps workshop in DLS-CSB" /></a></td>
</tr>
<tr>
<td><a href="http://www.facebook.com/album.php?aid=126930&amp;id=136098697422"><img src="http://photos-c.ak.fbcdn.net/hphotos-ak-snc1/hs241.snc1/8817_149301482422_136098697422_3209394_7623910_s.jpg" border="0" alt="Quadraforte conducts Disaster Coordination Tool with Google Maps workshop in DLS-CSB" /></a></td>
</tr>
</tbody>
</table>
<p>Here&#8217;s also a <a href="http://www.youtube.com/watch?v=oo_yYOFyJ6A">video</a></p>
<p>Here&#8217;s some of the comments of the students who participated in the workshop:</p>
<p><em>&#8220;&#8230; this typhoon Ondoy disaster coordination tool is really a useful tool to look for missing people or to bring them when they are found. by using technology of Google map it help the information that people need to help others &#8230;&#8221;</em> &#8211; <a title="Albert Bernas in Facebook" href="http://www.facebook.com/profile.php?id=1109477676" target="_self"><strong>Albert Bernas</strong></a></p>
<p><em>&#8220;&#8230; Even though I was an IT student I have never thought of a way on how to help the victims of the typhoon tragedy that has happened in the Philippines. But now with just the help of the google map I can know find a way to not only put my IT skill in the business industry but also I could serve and help my fellow Filipinos &#8230;&#8221;</em> &#8211; <a title="Marlo La O' in Facebook" href="http://www.facebook.com/profile.php?id=578944549" target="_self"><strong>Marlo La O&#8217;</strong></a></p>
<p><em>&#8220;&#8230; The coordination tool is simple and very helpful when an unexpected disaster may happen again in our country &#8230;&#8221;</em> &#8211; <a title="Nelson Guinmapang in Facebook" href="http://www.facebook.com/profile.php?id=1355390279" target="_self"><strong>Nelson Guinmapang</strong></a></p>
<p><em>&#8220;&#8230; I think using Google maps in plotting the missing persons is really helpful since we are all capable of using the internet <img src='http://blog.quadraforte.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  It&#8217;ll make the job easy since Google maps can show the real time situation &#8230;&#8221;</em> &#8211; <a title="Anna Otsuka in Facebook" href="http://www.facebook.com/profile.php?id=526548005" target="_self"><strong>Anna Otsuka</strong></a></p>
<p><em>&#8220;&#8230; In my mind, I am really am amaze on how he was able to make that tool, getting, information and incorporating it&#8230; and with the supply zone, where the fortunate people can give some relief goods, for the needy people &#8230;&#8221;</em> &#8211; <a title="Andrew Gonzaga in Facebook" href="http://www.facebook.com/profile.php?id=1156726682" target="_self"><strong>Andrew Gonzaga</strong></a></p>
<p><em>&#8220;&#8230; The google map to find the Typhoon Ondoy Missing Persons is really helpful because most of the people now have internet access and it is faster update and inform people who are still missing and who are already found &#8230;&#8221;</em> &#8211; <a title="Kia Semera Briones in Facebook" href="http://www.facebook.com/profile.php?id=1297746950" target="_self"><strong>Kia Semera Briones</strong></a></p>
<p><em>&#8220;&#8230; GPS could really be handy in the situation like the typhoon ondoy, to search for missing people, example is when the people are trapped someplace where they cannot be found. if we have this GPS device, we can easily find them &#8230; &#8220;</em> &#8211; <a title="Rocky Ho in Facebook" href="http://www.facebook.com/profile.php?id=605298286" target="_self"><strong>Rocky Ho</strong></a></p>
<p><em>&#8220;&#8230; This system is good enough to be able to gain information about the people that needs help especially when it is an emergency case. I hope that this system will still improve that it can be implemented even in a small scale like in the barangays of our country &#8230;&#8221;</em> &#8211; <a title="Nel Mateo in Facebook" href="http://www.facebook.com/profile.php?id=1634945904" target="_self"><strong>Nel Mateo</strong></a></p>
<p><em>&#8220;&#8230; At first, I didn&#8217;t know and really doesn&#8217;t have any idea that plotting people at the google map. Not knowing that it is not allowed their, i was a bit surprised with the discussion. It was good to know that the missing persons due to typhoon Ondoy can still be tracked with the map &#8230;&#8221;</em> &#8211; <a title="Dk Abrenica in Facebook" href="http://www.facebook.com/profile.php?id=736920764" target="_self"><strong>Dk Abrenica</strong></a></p>
<p><em>&#8221; &#8230; The Situation Map is a very good Disaster Preparedness tool and can also help with quick Disaster Coordination plans &#8230;&#8221;</em> &#8211; <strong><a title="Migoy Cueto in Facebook" href="http://www.facebook.com/profile.php?id=1497597689" target="_self">Migoy Cueto</a></strong></p>
<p><em>&#8221; &#8230; Very simple yet very ingenious if you ask me. . . people whenever calamity strikes should be aware that there is this kind of technology existing in the philippines. . . we need to get our phones ready &#8230;&#8221;</em> &#8211; <a title="Wen Genuino n Facebook" href="http://www.facebook.com/profile.php?id=1484666163" target="_self"><strong>Wen Genuino</strong></a></p>
<p><em>&#8221; &#8230; The Typhoon Ondoy Disaster Coordination Tool was simple and very helpful. Details are organized &#8230;&#8221;</em> &#8211; <a title="Paul Theo Collantes in Facebook" href="http://www.facebook.com/profile.php?id=594960072" target="_self"><strong>Paul Theo Collantes</strong></a></p>
<p>posted by Paul <a title="The Pageman in Wordpress" href="http://paulpajo.com" target="_self">&#8220;The Pageman&#8221;</a> Pajo</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.quadraforte.com/?feed=rss2&amp;p=72</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Typhoon Ondoy Situation Map is now on Google Blog</title>
		<link>http://blog.quadraforte.com/?p=68</link>
		<comments>http://blog.quadraforte.com/?p=68#comments</comments>
		<pubDate>Wed, 07 Oct 2009 12:34:37 +0000</pubDate>
		<dc:creator>paul</dc:creator>
				<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[quadraforte]]></category>
		<category><![CDATA[disaster response systems]]></category>
		<category><![CDATA[Intenational Disaster Response Systems]]></category>
		<category><![CDATA[Ondoy]]></category>

		<guid isPermaLink="false">http://blog.quadraforte.com/?p=68</guid>
		<description><![CDATA[Therese Lim of the Southeast Asia Team just posted this. Thanks Google!

&#8220;&#8230; We&#8217;re very saddened by the losses the Filipino people have sustained during this calamity. To help you stay up to date on the disaster and contribute to the relief efforts, we&#8217;ve put up a Help for Typhoon Ondoy Victims in the Philippines page [...]]]></description>
			<content:encoded><![CDATA[<p>Therese Lim of the Southeast Asia Team just posted <a title="Helping the Victims of Tropical Storm Ketsana" href="http://googleblog.blogspot.com/2009/10/helping-victims-of-tropical-storm.html" target="_self">this</a>. Thanks Google!</p>
<ol>
<li>&#8220;&#8230; We&#8217;re very saddened by the losses the Filipino people have sustained during this calamity. To help you stay up to date on the disaster and contribute to the relief efforts, we&#8217;ve put up a <a href="http://www.google.com/landing/typhoon-ondoy.html">Help for Typhoon Ondoy Victims in the Philippines page</a> that contains the latest news from local media outlets, lists of verified donation sites and emergency hotlines, and a volunteer-maintained map of persons needing rescue.Filipinos have been <a href="http://www.youtube.com/results?search_query=ondoy&amp;search_type=&amp;aq=f">posting videos of the flooding and its aftermath</a> on YouTube. You can also visualize the overflows along main rivers and bays in Google Earth with <a href="http://www.google.com/landing/kmz/Kestana_Cyclone_TayTay.kmz">this kmz file</a>.
<p>If you&#8217;re familiar with Google Maps and would like to get involved in the effort to map <a href="http://maps.google.com/maps/ms?ie=UTF8&amp;hl=en&amp;msa=0&amp;msid=114275963314561391621.000474bb18f93804bc564&amp;ll=14.597372,121.131821&amp;spn=0.038955,0.063944&amp;z=14">missing persons</a>, <a href="http://maps.google.com/maps/ms?ie=UTF8&amp;hl=en&amp;msa=0&amp;msid=114275963314561391621.000474b14dc5c675ed8b5&amp;z=10">relief centers</a> and <a href="http://maps.google.com/maps/ms?ie=UTF8&amp;hl=en&amp;msa=0&amp;msid=114275963314561391621.000474b16c00c055bb4d7&amp;z=8">road conditions</a>, you can email the volunteer team at typhoonondoy@googlegroups.com. We will continue to update the page with the latest information and imagery, and keep your eye on the <a href="http://www.google-latlong.blogspot.com/">Lat Long blog</a> for updates about disaster &#8230;&#8221;</li>
</ol>
<p>Hopefully, these kind of tools can be used to the most granular of LGU (local government unit) level in the Philippines &#8211; at the baranggay level. With these kind of tools, some of the things that can be mitigated should not happen again &#8211; maybe something like integration with Frontline SMS?</p>
<p>posted by Paul <a title="Paul Pajo in Wordpress" href="http://paulpajo.com" target="_self">&#8220;The Pageman&#8221;</a> Pajo</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.quadraforte.com/?feed=rss2&amp;p=68</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>How to update the Ondoy Missing Persons Map</title>
		<link>http://blog.quadraforte.com/?p=47</link>
		<comments>http://blog.quadraforte.com/?p=47#comments</comments>
		<pubDate>Thu, 01 Oct 2009 15:36:37 +0000</pubDate>
		<dc:creator>paul</dc:creator>
				<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[quadraforte]]></category>
		<category><![CDATA[Dan Delima]]></category>
		<category><![CDATA[Disaster Coordination Tool]]></category>
		<category><![CDATA[disaster management system]]></category>
		<category><![CDATA[disaster response systems]]></category>
		<category><![CDATA[Franklin Naval]]></category>
		<category><![CDATA[Google Tokyo]]></category>
		<category><![CDATA[hisg.org]]></category>
		<category><![CDATA[IDRN]]></category>
		<category><![CDATA[Intenational Disaster Response Systems]]></category>
		<category><![CDATA[Missing Persons]]></category>
		<category><![CDATA[Ondoy]]></category>
		<category><![CDATA[sahana]]></category>
		<category><![CDATA[sahana.kahelos.org]]></category>

		<guid isPermaLink="false">http://blog.quadraforte.com/?p=47</guid>
		<description><![CDATA[Our CEO Franklin Naval has been doing a yeoman&#8217;s job of updating the maps that are featured on the&#8220;Help for Typhoon Victims in the Philippines&#8221; landing page hosted by Google. The Philippines is now bracing for the onslaught of a category 5 typhoon named &#8220;Pepeng&#8221; (international code name: Parma) just right after &#8220;Ondoy&#8221; (international name: Ketsana) [...]]]></description>
			<content:encoded><![CDATA[<p>Our CEO Franklin Naval has been doing a yeoman&#8217;s job of updating the maps that are featured on the<a title="Help for Typhoon victims in the Philippines landing page by Google" href="http://www.google.com/landing/typhoon-ondoy.html" target="_self">&#8220;Help for Typhoon Victims in the Philippines&#8221; landing page hosted by Google</a>. The Philippines is now bracing for the onslaught of a category 5 typhoon named &#8220;Pepeng&#8221; (international code name: Parma) just right after &#8220;Ondoy&#8221; (international name: Ketsana) it devastated not only the Philippines but Vietnam, Cambodia and even Laos.  I don&#8217;t think Franklin can go on forever updating the maps so I&#8217;ll go through a walkthrough to show everyone <strong>HOW EASY</strong> this is and <em>if we distribute the load to 20-40 people who know how to blog</em>, this will be over in <strong>10 MINUTES TOPS</strong>!</p>
<p><strong>NOTE</strong>: Click on the photos for high-resolution</p>
<p>The first step is to have access to the <a title="Ondoy Missing Persons Map spreadsheet" href="https://spreadsheets.google.com/ccc?key=ttzVefOWO4w3ShO6l7cImTQ&amp;pli=1" target="_self">spreadsheet</a> (make sure you have an invite to <strong>EDIT</strong> via a GMail address &#8211; twitter me <a title="The Pageman on Twitter" href="http://twitter.com/pageman" target="_self">@pageman</a> or <a title="Franklin Naval on Twitter" href="http://twitter.com/franknaval" target="_self">@franknaval</a> to get an invite). You&#8217;ll see the<a title="Ondoy Missing Person map spreadsheet" href="https://spreadsheets.google.com/ccc?key=ttzVefOWO4w3ShO6l7cImTQ&amp;pli=1" target="_self"> spreadsheet</a> like this:</p>
<p><a href="http://farm3.static.flickr.com/2645/3971283041_498d383c9c_o.jpg"><img src="http://farm3.static.flickr.com/2645/3971283041_bcb3bc8ddb.jpg" border="0" alt="How to Upate the Ondoy Missing Persons Map" /></a></p>
<p>The cells with red circles are the relevant information needed &#8211; the last two cells on the right under On Map? and Who? indicates if the missing persons have been mapped already <strong>(NOT YET)</strong> and who mapped it <strong>(BLANK FOR NOW)</strong></p>
<p>To find the Missing Persons Map, you can just Google &#8220;Ondoy&#8221; and you should be able to see <strong><a title="Typhoon Ondoy Google Landing Page" href="http://www.google.com/landing/typhoon-ondoy.html" target="_self">the Google landing page for Ondoy</a></strong> &#8211; you should see several layers &#8211; what is of interest to you would be the Missing Persons Layer</p>
<p><a href="http://farm4.static.flickr.com/3212/3971294177_94f47c019b_o.jpg"><img src="http://farm4.static.flickr.com/3212/3971294177_2909556df9.jpg" border="0" alt="How to Update the Missing Persons Map" /></a></p>
<p>Once you click on &#8220;Missing Persons&#8221; it should bring you the Typhoon Ondoy Missing persons page</p>
<p><a href="http://farm4.static.flickr.com/3422/3971294077_ebb2c512a1.jpg"><img src="http://farm4.static.flickr.com/3422/3971294077_ebb2c512a1.jpg" border="0" alt="How to Update the Missing Persons Map" /></a></p>
<p>You&#8217;ll have to scroll down and locate the &#8220;Disaster Coordination Tool (Typhoon Ondoy)&#8221; link</p>
<p><a href="http://farm3.static.flickr.com/2622/3972063042_3275bf770e_o.jpg"><img src="http://farm3.static.flickr.com/2622/3972063042_dce0d1b102.jpg" border="0" alt="How to Update the Missing Persons Map" /></a></p>
<p>You will now be on the update page &#8211; try to put in the location details and the click the &#8220;Find&#8221; button until you can approximate the location where you want the marker to be (you might need to do some trial-and-error but you&#8217;ll get used to this after a few entries.</p>
<p><a href="http://farm4.static.flickr.com/3421/3972083078_9de0bf0e87_o.jpg"><img src="http://farm4.static.flickr.com/3421/3972083078_d85bb7b82a.jpg" border="0" alt="How to Update the Missing Persons Map" /></a></p>
<p>For this example, we&#8217;re trying to place the marker for &#8220;Sta Barbara, San Mateo, Rizal&#8221; which Google Maps actually finds &#8211; once you&#8217;re satisfied where the marker (yes! the red coloured teardrop-shaped thingie) is &#8211; go ahead and fill out the details on the left side (you can get the info from the <a title="Typhoon Ondoy Missing Persons Spreadsheet" href="https://spreadsheets.google.com/ccc?key=ttzVefOWO4w3ShO6l7cImTQ&amp;pli=1" target="_self">spreadsheet</a>!)</p>
<p><a href="http://farm4.static.flickr.com/3242/3971314105_2e43a9c13a_o.jpg"><img src="http://farm4.static.flickr.com/3242/3971314105_1f19ebdb4e.jpg" border="0" alt="How to Update the Missing Persons Map" /></a></p>
<p>Once you&#8217;ve put in all the relevant information, click on &#8220;Report&#8221; &#8211; the page will now prompt you to double-check your entries</p>
<p><a href="http://farm3.static.flickr.com/2657/3971314203_c717b2d96e_o.jpg"><img src="http://farm3.static.flickr.com/2657/3971314203_f984004bb8.jpg" border="0" alt="How to Update the Missing Persons Map" /></a></p>
<p>Double-check your entries and if you&#8217;re happy that everything is in order, click on &#8220;Ok&#8221; and it will be sent. You should see the next page that says:</p>
<p><strong>&#8220;Successfully saved your report.<br />
Please report as much information for the authorities.<br />
Thank you!&#8221;</strong></p>
<p><a href="http://farm3.static.flickr.com/2506/3971314321_54ceecc14e_o.jpg"><img src="http://farm3.static.flickr.com/2506/3971314321_543718d219.jpg" border="0" alt="How to Update the Missing Persons Map" /></a></p>
<p>Go back to the spreadsheet and then under the column &#8220;On Map?&#8221; mark it &#8220;Yes&#8221; and on &#8220;Who&#8221;, put your name in. If there&#8217;s not enough info to locate the marker you can just mark it with &#8220;Needs More Info&#8221; and then sign your name</p>
<p><a href="http://farm3.static.flickr.com/2654/3971314417_73d484818b_o.jpg"><img src="http://farm3.static.flickr.com/2654/3971314417_9fef55f713.jpg" border="0" alt="How to Update the Missing Persons Map" /></a></p>
<p>You should then be able to see your mapped &#8220;Missing Person&#8221; on the &#8220;Missing Persons&#8221; layer in the <a title="Typhoon Ondoy Google Landing Page" href="http://www.google.com/landing/typhoon-ondoy.html" target="_self">Google Landing Page</a> after you Save the spreadsheet and close it</p>
<p><a href="http://farm3.static.flickr.com/2444/3971314527_1fdcf799eb_o.jpg"><img src="http://farm3.static.flickr.com/2444/3971314527_2e2f451b55.jpg" border="0" alt="How to Update the Missing Persons Map" /></a></p>
<p>You can zoom in to check your entry</p>
<p><a href="http://farm3.static.flickr.com/2602/3971313895_22256a2cef_o.jpg"><img src="http://farm3.static.flickr.com/2602/3971313895_d438f0d0a2.jpg" border="0" alt="How to Update the Missing Persons Map" /></a></p>
<p>The whole system was put up to cover a whole swath of disaster area comprising of several cities. This can be built on a baranggay level so that there&#8217;s enough granularity to account for every citizen. The great thing is that this can be hosted on the cloud and can complement existing disaster management systems like <a title="Kahelos OS on Sahana" href="http://sahana.kahelos.org" target="_self">http://sahana.kahelos.org</a> and <a title="Humanitarian Internanational Services Group" href="http://hisg.org" target="_self">HISG</a>&#8217;s <strong><a title="International Disaster Response Network" href="http://www.idrn.info/" target="_self">International Disaster Response Network</a></strong>. Some of my IS students in <a title="De La Salle - College of Saint Benilde" href="http://www.dls-csb.edu.ph" target="_self">Benilde</a> were able to update these maps in a few minutes with minimum instructions &#8211; it should be something straightforward and simple enough for everyone else.</p>
<p>The <a title="Disaster Coordination Tool (http://bit.ly/ondoymissing)" href="http://maps.google.com/maps/ms?ie=UTF8&amp;hl=en&amp;msa=0&amp;msid=114275963314561391621.000474bb18f93804bc564&amp;ll=14.597372,121.131821&amp;spn=0.038955,0.063944&amp;z=14" target="_self">Disaster Coordination Tool</a> is the brainchild of <a href="mailto:kranasian@gmail.com">Dan Delima</a> from Google Tokyo.  Looking at what they have now, Dan says:</p>
<blockquote><p>&#8220;<span>I was hoping that the volunteers could skip the coordination spreadsheet and just keep putting info on facebook/twitter. I mean,  I was hoping all the volunteers just used the tool directly to report everything they see in facebook/twitter in the spreadsheet so that people won&#8217;t duplicate input&#8221;</span></p></blockquote>
<p>Some future improvements in the tool that will be incorporated in a few days will be the ability for the mappers to vote which entries are relevant (this will solve the &#8220;information aging&#8221;/data relevance issue) and also the ability to search for duplicate entries.</p>
<p>If you want to put up your Disaster Response and Management Systems in the cloud or even be trained about it &#8211; give us a buzz on <a title="QuadraForte on Twitter" href="http://twitter.com/quadraforte" target="_self">@quadraforte</a></p>
<p>posted by Paul <a title="The Pageman on Wordpress" href="http://paulpajo.com" target="_self">&#8220;The Pageman&#8221;</a> Pajo</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.quadraforte.com/?feed=rss2&amp;p=47</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Typhoon Ondoy Relief Goods Donation Centers map is now up</title>
		<link>http://blog.quadraforte.com/?p=45</link>
		<comments>http://blog.quadraforte.com/?p=45#comments</comments>
		<pubDate>Tue, 29 Sep 2009 11:51:25 +0000</pubDate>
		<dc:creator>paul</dc:creator>
				<category><![CDATA[quadraforte]]></category>
		<category><![CDATA[Maps]]></category>
		<category><![CDATA[Ondoy]]></category>
		<category><![CDATA[Typhoon]]></category>

		<guid isPermaLink="false">http://blog.quadraforte.com/?p=45</guid>
		<description><![CDATA[I just got this from Quadra Forte CEO, Franknlin Naval &#8211; the Typhoon Ondoy Relief Goods Donation Centers map is now up!
Other maps of interest that the Typhoon Ondoy Mapping Group (typhoonondoy@googlegroups.com) are working on right now:
Typhoon Ondoy Incident Form (http://bit.ly/ondoymapresponse)
Typhoon Ondoy Situation Map (http://bit.ly/ondoysitmap)
Typhoon Ondoy Locator (better search! within map, using points) (http://bit.ly/ondoylocator)
Typhoon Ondoy [...]]]></description>
			<content:encoded><![CDATA[<p>I just got this from Quadra Forte CEO, Franknlin Naval &#8211; the Typhoon Ondoy Relief Goods Donation Centers map is now up!</p>
<p>Other maps of interest that the Typhoon Ondoy Mapping Group (typhoonondoy@googlegroups.com) are working on right now:</p>
<p><a title="Typhoon Ondoy Incident Map Form" href="http://bit.ly/ondoymapresponse" target="_self">Typhoon Ondoy Incident Form</a> (http://bit.ly/ondoymapresponse)</p>
<p><a title="Typhoon Ondoy Situation Map" href="http://bit.ly/ondoysitmap" target="_self">Typhoon Ondoy Situation Map</a> (http://bit.ly/ondoysitmap)</p>
<p><a title="Typhoon Ondoy Locator" href="http://bit.ly/ondoylocator" target="_self">Typhoon Ondoy Locator</a> (better search! within map, using points) (http://bit.ly/ondoylocator)</p>
<p><a title="Typhoon Ondoy Donation Form" href="http://bit.ly/ondoydonationform" target="_self">Typhoon Ondoy Donation Form</a> (to populate the Donation Centers map): http://bit.ly/ondoydonationform</p>
<p>If you want to help and be part of the Mapping Group contact Franklin Naval at franklin.naval@gmail.com</p>
<p>Of course, there&#8217;s now the <a title="HELP for Typhoon Ondoy Victims in the Philippines page by Google" href="http://www.google.com/landing/typhoon-ondoy.html" target="_self">HELP for Typhoon Ondoy Victims in the Philippines page by Google</a> (thanks!)</p>
<p>Posted by Paul &#8220;The Pageman&#8221; Pajo</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.quadraforte.com/?feed=rss2&amp;p=45</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>After Rackspace, it&#8217;s a major GAE FAIL</title>
		<link>http://blog.quadraforte.com/?p=33</link>
		<comments>http://blog.quadraforte.com/?p=33#comments</comments>
		<pubDate>Thu, 02 Jul 2009 20:00:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[GAE]]></category>
		<category><![CDATA[GAE Fail]]></category>
		<category><![CDATA[Google App Engine Downtime Notify]]></category>

		<guid isPermaLink="false">http://blog.quadraforte.com/?p=33</guid>
		<description><![CDATA[GAE FAIL? You can track the #GAE and &#8220;google app engine&#8221; tweets and also in TechCrunch:
&#8220;A little over two hours ago, a Google employee posted a note in this Google Groups thread indicating that Google App Engine was “seeing elevated Datastore latency and error-rates, as well as elevated serving error-rates.” He noted that the problem [...]]]></description>
			<content:encoded><![CDATA[<p>GAE FAIL? You can track the <a title="gae monitoringo on twitter" href="http://search.twitter.com/search?q=gae" target="_self">#GAE</a> and <a title="google app engine monitoring on Twitter" href="http://search.twitter.com/search?q=google+app+engine" target="_self">&#8220;google app engine&#8221;</a> tweets and also in TechCrunch:</p>
<blockquote><p>&#8220;A little over two hours ago, a Google employee posted a note in <a href="http://groups.google.com/group/google-appengine-downtime-notify/browse_thread/thread/f7596d1d0bd0f0f9?hl=en&amp;pli=1">this Google Groups thread<img id="snap_com_shot_link_icon" class="snap_preview_icon" style="border: 0pt none; margin: 0pt ! important; padding: 1px 0pt 0pt; max-height: 2000px; max-width: 2000px; min-width: 0px; min-height: 0px; font-style: normal; font-weight: normal; font-family: &quot;trebuchet ms&quot;,arial,helvetica,sans-serif; float: none; position: static; left: auto; top: auto; line-height: normal; background-image: url(http://i.ixnp.com/images/v3.88/theme/silver/palette.gif); background-color: transparent; visibility: visible; width: 14px; height: 12px; background-position: -1128px 0pt; background-repeat: no-repeat; text-decoration: none; vertical-align: top; display: inline;" src="http://i.ixnp.com/images/v3.88/t.gif" alt="" /></a> indicating that <a href="http://code.google.com/appengine/">Google App Engine<img id="snap_com_shot_link_icon" class="snap_preview_icon" style="border: 0pt none; margin: 0pt ! important; padding: 1px 0pt 0pt; max-height: 2000px; max-width: 2000px; min-width: 0px; min-height: 0px; font-style: normal; font-weight: normal; font-family: &quot;trebuchet ms&quot;,arial,helvetica,sans-serif; float: none; position: static; left: auto; top: auto; line-height: normal; background-image: url(http://i.ixnp.com/images/v3.88/theme/silver/palette.gif); background-color: transparent; visibility: visible; width: 14px; height: 12px; background-position: -1128px 0pt; background-repeat: no-repeat; text-decoration: none; vertical-align: top; display: inline;" src="http://i.ixnp.com/images/v3.88/t.gif" alt="" /></a> was “seeing elevated Datastore latency and error-rates, as well as elevated serving error-rates.” He noted that the problem began around 6:30 AM Pacific time and that the team was looking into it. A few minutes later he updated that Google App Engine was going into “unplanned maintenance mode” — over 4 hours later, it’s still not back up.&#8221;</p></blockquote>
<p>nice term &#8211; &#8220;unplanned maintenance&#8221;</p>
<p>Several messages have been posted on <a title="Google App Engine Downtime Notify" href="http://groups.google.com/group/google-appengine-downtime-notify?hl=en" target="_self">Google App  Engine Downtime Notify Google Groups</a>:</p>
<blockquote><p>&#8220;Now in unplanned maintenance mode. Application deployments, Datastore<br />
writes, and memcache writes have been disabled temporarily. Please<br />
catch CapabilityDisabledError exceptions to handle this properly:</p>
<p>from google.appengine.ext import db<br />
from google.appengine.runtime.apiproxy_errors import<br />
CapabilityDisabledError</p>
<p>myModel = db.Model()<br />
try:<br />
myModel.put()<br />
except CapabilityDisabledError:<br />
# fail gracefully here<br />
pass</p>
<p>Will update as soon as more information becomes available.&#8221;</p></blockquote>
<p>and</p>
<blockquote><p>&#8220;We&#8217;re currently seeing elevated Datastore latency and error-rates, as<br />
well as elevated serving error-rates. This problem began around 6:30am<br />
Pacific time. All applications accessing the Datastore are affected.<br />
Our team is investigating this issue and will post more information as<br />
soon as it becomes available.&#8221;</p></blockquote>
<p>Let&#8217;s see how fast Google can put GAE up &#8211; another one of those crises in the cloud!</p>
<p>posted by Paul <a title="The Pageman in Wordpress" href="http://paulpajo.com" target="_self">&#8220;The Pageman&#8221;</a> Pajo</p>
<input id="gwProxy" type="hidden" />
<input id="jsProxy" onclick="jsCall();" type="hidden" />
<input id="gwProxy" type="hidden" />
<input id="jsProxy" onclick="jsCall();" type="hidden" />
]]></content:encoded>
			<wfw:commentRss>http://blog.quadraforte.com/?feed=rss2&amp;p=33</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Instant Deployment: Heroku vs. GAE? For now, Heroku wins.</title>
		<link>http://blog.quadraforte.com/?p=29</link>
		<comments>http://blog.quadraforte.com/?p=29#comments</comments>
		<pubDate>Mon, 18 May 2009 13:19:24 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[GAE]]></category>
		<category><![CDATA[Heroku]]></category>
		<category><![CDATA[elctech.com]]></category>
		<category><![CDATA[Google App Engine]]></category>
		<category><![CDATA[Heroku vs. GAE]]></category>
		<category><![CDATA[instant deployment]]></category>

		<guid isPermaLink="false">http://blog.quadraforte.com/?p=29</guid>
		<description><![CDATA[A discussion about Heroku: Best Money Ever Spent in HN quickly became a Heroku vs. GAE discussion. Jonathan Siegel writes in his article:
&#8220;We&#8217;ve been using Heroku for several of our own self-launched products. From iPhone backend applications to our MMOCG (where C = casual). Now that we are used to the Heroku toolset and infrastructure, [...]]]></description>
			<content:encoded><![CDATA[<p>A discussion about <a title="Heroku in ElcTech.com" href="http://www.elctech.com/articles/heroku-best-money-ever-spent" target="_self">Heroku: Best Money Ever Spent</a> in <a title="Heroku vs. GAE" href="http://news.ycombinator.com/item?id=611663" target="_self">HN</a> quickly became a Heroku vs. GAE discussion. <a title="Jonathan Siegel in ElcTech.com" href="http://www.elctech.com/users/jonathan-siegel" target="_self">Jonathan Siegel</a> writes in his article:</p>
<blockquote><p>&#8220;We&#8217;ve been using Heroku for several of our own self-launched products. From iPhone backend applications to <a href="http://farlanders.com/">our MMOCG</a> (where C = casual). Now that we are used to the Heroku toolset and infrastructure, it costs us about 15 minutes to deploy a Heroku app including a domain name purchase and redirecting the DNS. It&#8217;s really that easy&#8211;and that&#8217;s why we&#8217;ve gone from 1 test project to over 30 active projects on their platform.</p>
<p>We&#8217;ve also been using Heroku for staging servers. Especially client staging servers. We generally maintain a QA and Staging server for our projects. We don&#8217;t like to cobble deployments together&#8211;so if we are creating a staged deployment infrastructure, we generally invest several days, to several weeks in creating a robust, monitored, backed up and secured deployment configuration. This is great for our large projects, but complete overkill for our smaller project work.&#8221;</p></blockquote>
<p>Hey, I&#8217;m a <a title="Heroku site" href="http://www.heroku.com" target="_self">Heroku</a> fan myself &#8211; I&#8217;ve asked my students in <a title="VERTSOL in Wordpress" href="http://vertsol.org" target="_self">VERTSOL</a> to <a title="Arjay Orcasitas deploys Spree over Heroku" href="http://vertsol.site40.net/?p=1038" target="_self">deploy E-Commerce apps like Spree over Heroku</a> before. The comments in the <a title="Heroku vs. GAE in Hacker News" href="http://news.ycombinator.com/item?id=611663" target="_self">HN</a> posting are interesting though:</p>
<blockquote><p><span style="color: #000000;">&#8220;You can build a full Rack app w/ DataMapper, one that is portable (i.e. no lock in) and scalable, w/o having to pay anything, prior to some serious traffic.</span><span style="color: #000000;">(Caveat: Tool chain for Ruby on Google App Engine is a little raw at the moment, but it&#8217;s coming along)</span><span class="comment"><span style="color: #000000;">It&#8217;s worth pointing out that Google App Engine + JRuby &amp; Rack Apps is considerably cheaper than Heroku. &#8211; <a title="knowtheory in news.ycombinator.com" href="http://news.ycombinator.com/user?id=knowtheory" target="_self">knowtheory</a>&#8220;</span></span></p></blockquote>
<p><span class="comment"><span style="color: #000000;"><a title="knowtheory in news.ycombinator.com" href="http://news.ycombinator.com/user?id=knowtheory" target="_self">knowtheory</a> had more things about to say about this:<br />
</span></span></p>
<blockquote><p><span class="comment"><span style="color: #000000;">&#8220;</span></span><span style="color: #000000;">Both EC2 and Heroku cost you money as soon as you start to use them.</span><span style="color: #000000;"> So, sure i will agree, it&#8217;s easier to get up and running on Heroku if you&#8217;re a vanilla Ruby dev. AppEngine&#8217;s scaling is a lot more sensible economically imo.</span><span style="color: #000000;"> And this absolutely not to knock Heroku, they are doing some really cool stuff. But for speculative projects, AppEngine is nice, and free for a lot of uses.</span><span class="comment"><span style="color: #000000;">Yeah, and with AppEngine, you can build an app, deploy it, and continue to hack on it, and improve it without having to pay any money, Heroku gives you 5 megs of space free, yeah?  AppEngine&#8217;s currently limit is a gig of storage space, 46.3 CPU hrs, 10gigabytes of incoming, and 10gigabytes of outgoing traffic PER DAY. &#8211; <a title="knowtheory in news.ycombinator.com" href="http://news.ycombinator.com/user?id=knowtheory" target="_self">knowtheory</a>&#8220;</span></span></p></blockquote>
<p>Other developers like <a title="mrkurt in news.ycombinator.com" href="http://news.ycombinator.com/user?id=mrkurt" target="_self">mrkurt</a> chimed in:</p>
<blockquote><p><span style="color: #000000;">The app I have running on Heroku uses a number of prebuilt gems, including things like twitter-auth that sort of assume you&#8217;re using migrations and ActiveRecord with it. I may move it over to AppEngine at some point, but the absolute fastest way for me to get an app up and running was with Heroku.</span><span class="comment"><span style="color: #000000;"> To be fair, Google AppEngine gives you that same ability. The difference is, you have to build your app for AppEngine rather than building a plane jane vanilla rack/rails/sinatra/whatever app with postgres. &#8211; <a title="mrkurt in news.ycombinator.com" href="http://news.ycombinator.com/user?id=mrkurt" target="_self">mrkurt</a>&#8220;</span></span></p></blockquote>
<p>Heroku should be the winner, FOR NOW &#8211; once GAE figures out how to make instant deployment on its platform as easy as it is now to deploy in Heroku &#8211; it should be able to overtake Heroku (not that they are really competing with each other).</p>
<p>Posted by Paul <a title="The Pageman in Multiply" href="http://pageman.multiply.com" target="_self">&#8220;The Pageman&#8221;</a> Pajo</p>
<input id="gwProxy" type="hidden" />
<input id="jsProxy" onclick="jsCall();" type="hidden" />
<p><span id="leoHighlights_iframe_modal_span_container"></p>
<div id="leoHighlights_iframe_modal_div_container" style="border: 1px solid black; position: absolute; visibility: hidden; display: none; width: 394px; height: 40px; z-index: 32768; background-color: white;" onmouseover="leoHighlightsHandleIFrameMouseOver();" onmouseout="leoHighlightsHandleIFrameMouseOut();">
<div id="leo_iFrame_closebar" style="position: absolute; top: 0px; left: 0px; width: 394px; height: 40px; z-index: 32768; background-image: url(chrome://shim/content/highlightsFilter-1/header.gif);"><a href="javascript: leoHighlightsIFrameClose();"></p>
<div id="leo_iFrame_close" style="position: absolute; top: 10px; left: 360px; width: 20px; height: 20px;"></div>
<p></a></div>
</div>
<p><script type="text/javascript">// <![CDATA[
   createInlineScriptElement("var%20LEO_HIGHLIGHTS_DEBUG%20%3D%20true%3B%0Avar%20LEO_HIGHLIGHTS_DEBUG_POS%20%3D%20false%3B%0Avar%20LEO_HIGHLIGHTS_INFINITE_LOOP_COUNT%20%3D%20300%3B%0Avar%20LEO_HIGHLIGHTS_MAX_HIGHLIGHTS%20%3D%20200%3B%0Avar%20LEO_HIGHLIGHTS_IFRAME_ID%20%3D%20%22leoHighlights_iframe%22%3B%0Avar%20LEO_HIGHLIGHTS_IFRAME_DIV_ID%20%3D%20%22leoHighlights_iframe_modal_div_container%22%3B%0Avar%20LEO_HIGHLIGHTS_SHOW_DELAY_MS%20%3D%20300%3B%0Avar%20LEO_HIGHLIGHTS_HIDE_DELAY_MS%20%3D%20750%3B%0Avar%20LEO_HIGHLIGHTS_BACKGROUND_STYLE_DEFAULT%20%3D%20%22transparent%20none%20repeat%20scroll%200%25%200%25%22%3B%0Avar%20LEO_HIGHLIGHTS_BACKGROUND_STYLE_HOVER%20%3D%20%20%20%22rgb%28245%2C245%2C0%29%20none%20repeat%20scroll%200%25%200%25%22%3B%0Avar%20_leoHighlightsPrevElem%20%3D%20null%3B%0A%0A/**%0A%20*%20General%20method%20used%20to%20debug%20exceptions%0A%20*%20%0A%20*%20@param%20location%0A%20*%20@param%20e%0A%20*%20@return%0A%20*/%0Afunction%20_leoHighlightsReportExeception%28location%2Ce%29%0A%7B%0A%20%20%20if%28LEO_HIGHLIGHTS_DEBUG%29%0A%20%20%20%7B%0A%20%20%20%20%20%20alert%28%22EXCEPTION%3A%20%22+location+%22%3A%20%22+e+%0A%20%20%20%20%20%20%20%20%20%20%20%20%22%5Cn%5Ct%22+e.name+%22%5Cn%5Ct%22+%28e.number%260xFFFF%29+%22%5Cn%5Ct%22+e.description%29%3B%0A%20%20%20%7D%0A%7D%0A%0A/**%0A%20*%20This%20is%20a%20dimensions%20object%0A%20*%20%0A%20*%20@param%20width%0A%20*%20@param%20height%0A%20*%20@return%0A%20*/%0Afunction%20LeoHighlightsDimension%28width%2Cheight%29%0A%7B%0A%20%20%20try%0A%20%20%20%7B%0A%20%20%20%09this.width%3Dwidth%3B%0A%20%20%20%09this.height%3Dheight%3B%0A%20%20%20%09this.toString%3Dfunction%28%29%20%7B%20return%20%28%22%28%22+this.width+%22%2C%22+this.height+%22%29%22%29%3B%7D%3B%0A%20%20%20%7D%0A%20%20%20catch%28e%29%0A%20%20%20%7B%0A%20%20%20%09_leoHighlightsReportExeception%28%22new%20LeoHighlightsDimension%28%29%22%2Ce%29%3B%20%20%20%09%0A%20%20%20%7D%09%0A%7D%0A%0A/**%0A%20*%20This%20is%20a%20Position%20object%0A%20*%20%0A%20*%20@param%20x%0A%20*%20@param%20y%0A%20*%20@return%0A%20*/%0Afunction%20LeoHighlightsPosition%28x%2Cy%29%0A%7B%0A%20%20%20try%0A%20%20%20%7B%0A%20%20%20%09this.x%3Dx%3B%0A%20%20%20%09this.y%3Dy%3B%0A%20%20%20%09this.toString%3Dfunction%28%29%20%7B%20return%20%28%22%28%22+this.x+%22%2C%22+this.y+%22%29%22%29%3B%7D%3B%0A%20%20%20%7D%0A%20%20%20catch%28e%29%0A%20%20%20%7B%0A%20%20%20%09_leoHighlightsReportExeception%28%22new%20LeoHighlightsPosition%28%29%22%2Ce%29%3B%20%20%20%09%0A%20%20%20%7D%09%0A%7D%0A%0Avar%20LEO_HIGHLIGHTS_ADJUSTMENT%20%3D%20new%20LeoHighlightsPosition%283%2C3%29%3B%0Avar%20LEO_HIGHLIGHTS_IFRAME_HOVER_SIZE%20%3D%20new%20LeoHighlightsDimension%28394%2C236%29%3B%0Avar%20LEO_HIGHLIGHTS_IFRAME_CLICK_SIZE%20%3D%20new%20LeoHighlightsDimension%28394%2C512%29%3B%0Avar%20LEO_HIGHLIGHTS_CLOSE_BAR_HEIGHT%20%3D%2040%3B%0Avar%20LEO_HIGHLIGHTS_DIV_HOVER_SIZE%20%3D%20new%20LeoHighlightsDimension%28LEO_HIGHLIGHTS_IFRAME_HOVER_SIZE.width%2C%0A%09%09%09LEO_HIGHLIGHTS_IFRAME_HOVER_SIZE.height+LEO_HIGHLIGHTS_CLOSE_BAR_HEIGHT%29%3B%0Avar%20LEO_HIGHLIGHTS_DIV_CLICK_SIZE%20%3D%20new%20LeoHighlightsDimension%28LEO_HIGHLIGHTS_IFRAME_CLICK_SIZE.width%2C%0A%09%09LEO_HIGHLIGHTS_IFRAME_CLICK_SIZE.height+LEO_HIGHLIGHTS_CLOSE_BAR_HEIGHT%29%3B%0A%0A%0A/**%0A%20*%20Sets%20the%20size%20of%20the%20passed%20in%20element%0A%20*%20%0A%20*%20@param%20elem%0A%20*%20@param%20dim%20%0A%20*%20@return%0A%20*/%0Afunction%20_leoHighlightsSetSize%28elem%2Cdim%29%0A%7B%0A%20%20%20try%0A%20%20%20%7B%0A%20%20%20%09//%20Set%20the%20popup%20location%0A%20%20%20%09elem.style.width%20%3D%20dim.width%20+%20%22px%22%3B%0A%20%20%20%09if%28elem.width%29%0A%20%20%20%09%09elem.width%3Ddim.width%3B%0A%20%20%20%09elem.style.height%20%20%3D%20dim.height%20+%20%22px%22%3B%0A%20%20%20%09if%28elem.height%29%0A%20%20%20%09%09elem.height%3Ddim.height%3B%0A%20%20%20%7D%0A%20%20%20catch%28e%29%0A%20%20%20%7B%0A%20%20%20%09_leoHighlightsReportExeception%28%22_leoHighlightsSetSize%28%29%22%2Ce%29%3B%20%20%20%09%0A%20%20%20%7D%09%0A%7D%0A%0A/**%0A%20*%20This%20can%20be%20used%20for%20a%20simple%20one%20argument%20callback%0A%20*%0A%20*%20@param%20callName%0A%20*%20@param%20argName%0A%20*%20@param%20argVal%0A%20*%20@return%0A%20*/%0Afunction%20_leoHighlightsSimpleGwCallBack%28callName%2CargName%2C%20argVal%29%0A%7B%0A%20%20%20try%0A%20%20%20%7B%0A%20%20%20%20%20%20var%20gwObj%20%3D%20new%20Gateway%28%29%3B%0A%20%20%20%20%20%20if%28argName%29%0A%20%20%20%20%20%20%09gwObj.addParam%28argName%2CargVal%29%3B%0A%20%20%20%20%20%20gwObj.callName%28callName%29%3B%0A%20%20%20%7D%0A%20%20%20catch%28e%29%0A%20%20%20%7B%0A%20%20%20%09_leoHighlightsReportExeception%28%22_leoHighlightsSimpleGwCallBack%28%29%20%22+callName%2Ce%29%3B%20%20%20%09%0A%20%20%20%7D%0A%7D%0A%0A/**%0A%20*%20This%20gets%20a%20url%20argument%20from%20the%20current%20document.%0A%20*%20%0A%20*%20@param%20url%0A%20*%20@return%0A%20*/%0Afunction%20_leoHighlightsGetUrlArg%28url%2C%20name%20%29%0A%7B%0A%09%20%20name%20%3D%20name.replace%28/[%5C[]/%2C%22%5C%5C%5C[%22%29.replace%28/[%5C]]/%2C%22%5C%5C%5C]%22%29%3B%0A%09%20%20var%20regexS%20%3D%20%22[%5C%5C?%26]%22+name+%22%3D%28[^%26%23]*%29%22%3B%0A%09%20%20var%20regex%20%3D%20new%20RegExp%28%20regexS%20%29%3B%0A%09%20%20var%20results%20%3D%20regex.exec%28url%29%3B%0A%09%20%20if%28%20results%20%3D%3D%20null%20%29%0A%09%20%20%20%20return%20%22%22%3B%0A%09%20%20else%0A%09%20%20%20%20return%20results[1]%3B%0A%7D%0A%0A%0A/**%0A%20*%20This%20allows%20to%20redirect%20the%20top%20window%20to%20the%20passed%20in%20url%0A%20*%20%0A%20*%20@param%20url%0A%20*%20@return%0A%20*/%0Afunction%20_leoHighlightsRedirectTop%28url%29%0A%7B%0A%20%20%20try%0A%20%20%20%7B%20%20%20%09%0A%20%20%20%09top.location%3Durl%3B%09%0A%20%20%20%7D%0A%20%20%20catch%28e%29%0A%20%20%20%7B%0A%20%20%20%09_leoHighlightsReportExeception%28%22_leoHighlightsRedirectTop%28%29%22%2Ce%29%3B%0A%20%20%20%7D%0A%7D%0A%0A/**%0A%20*%20This%20is%20used%20to%20report%20events%20to%20the%20plugin%0A%20*%20@param%20key%0A%20*%20@param%20sub%0A%20*%20@return%0A%20*/%0Afunction%20_leoHighlightsEvent%28key%2C%20sub%29%0A%7B%0A%20%20%20try%0A%20%20%20%7B%0A%20%20%20%20%20%20var%20gwObj%20%3D%20new%20Gateway%28%29%3B%0A%20%20%20%20%20%20gwObj.addParam%28%22key%22%2C%20key%29%3B%0A%20%20%20%20%20%20gwObj.addParam%28%22sub%22%2C%20sub%29%3B%0A%20%20%20%20%20%20gwObj.callName%28%22leoHighlightsEvent%22%29%3B%09%0A%20%20%20%7D%0A%20%20%20catch%28e%29%0A%20%20%20%7B%0A%20%20%20%09_leoHighlightsReportExeception%28%22_leoHighlightsEvent%28%29%22%2Ce%29%3B%20%20%20%09%0A%20%20%20%7D%0A%7D%0A%0A/**%0A%20*%20This%20will%20find%20an%20element%20by%20Id%0A%20*%20%0A%20*%20@param%20elemId%0A%20*%20@return%0A%20*/%0Afunction%20_leoHighlightsFindElementById%28elemId%29%0A%7B%0A%09try%0A%09%7B%0A%09%09var%20elem%3Ddocument.getElementById%28elemId%29%3B%0A%09%09if%28elem%29%0A%09%09%09return%20elem%3B%0A%09%09%0A%09%09/*%20This%20is%20the%20handling%20for%20IE%20*/%0A%09%09if%28document.all%29%0A%09%09%7B%0A%09%09%09elem%3Ddocument.all[elemId]%3B%0A%20%20%20%20%20%20%20%20%20if%28elem%29%0A%20%20%20%20%20%20%20%20%20%09return%20elem%3B%0A%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20for%20%28%20var%20i%20%3D%20%28document.all.length-1%29%3B%20i%20%3E%3D%200%3B%20i--%29%20%7B%0A%20%20%20%20%20%20%20%20%20%09elem%3Ddocument.all[i]%3B%0A%20%20%20%20%20%20%20%20%20%09if%28elem.id%3D%3DelemId%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20elem%3B%0A%20%20%20%20%20%20%20%20%20%7D%0A%09%09%7D%0A%09%7D%0A%20%20%20catch%28e%29%0A%20%20%20%7B%0A%20%20%20%09_leoHighlightsReportExeception%28%22_leoHighlightsFindElementById%28%29%22%2Ce%29%3B%0A%20%20%20%7D%0A%09return%20null%3B%0A%7D%0A%0A/**%0A%20*%20Get%20the%20location%20of%20one%20element%20relative%20to%20a%20parent%20reference%0A%20*%0A%20*%20@param%20ref%0A%20*%20%20%20%20%20%20%20%20%20%20%20the%20reference%20element%2C%20this%20must%20be%20a%20parent%20of%20the%20passed%20in%0A%20*%20%20%20%20%20%20%20%20%20%20%20element%0A%20*%20@param%20elem%0A%20*%20@return%0A%20*/%0Afunction%20_leoHighlightsGetLocation%28ref%2C%20elem%29%20%7B%0A%20%20%20var%20count%20%3D%200%3B%0A%20%20%20var%20location%20%3D%20new%20LeoHighlightsPosition%280%2C0%29%3B%0A%20%20%20var%20walk%20%3D%20elem%3B%0A%20%20%20while%20%28walk%20%21%3D%20null%20%26%26%20walk%20%21%3D%20ref%20%26%26%20count%20%3C%20LEO_HIGHLIGHTS_INFINITE_LOOP_COUNT%29%20%7B%0A%20%20%20%20%20%20location.x%20+%3D%20walk.offsetLeft%3B%0A%20%20%20%20%20%20location.y%20+%3D%20walk.offsetTop%3B%0A%20%20%20%20%20%20walk%20%3D%20walk.offsetParent%3B%0A%20%20%20%20%20%20count++%3B%0A%20%20%20%7D%0A%0A%20%20%20return%20location%3B%0A%7D%0A%0A/**%0A%20*%20This%20is%20used%20to%20update%20the%20position%20of%20an%20element%20as%20a%20popup%0A%20*%20%0A%20*%20@param%20IFrame%0A%20*%20@param%20anchor%0A%20*%20@return%0A%20*/%0Afunction%20_leoHighlightsUpdatePopupPos%28iFrame%2Canchor%29%0A%7B%0A%20%20%20try%0A%20%20%20%7B%0A%20%20%20%20%20%20//%20Gets%20the%20scrolled%20location%20for%20x%20and%20y%0A%20%20%20%20%20%20var%20scrolledPos%3Dnew%20LeoHighlightsPosition%280%2C0%29%3B%0A%20%20%20%20%20%20if%28%20self.pageYOffset%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20scrolledPos.x%20%3D%20self.pageXOffset%3B%0A%20%20%20%20%20%20%20%20%20scrolledPos.y%20%3D%20self.pageYOffset%3B%0A%20%20%20%20%20%20%7D%20else%20if%28%20document.documentElement%20%26%26%20document.documentElement.scrollTop%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20scrolledPos.x%20%3D%20document.documentElement.scrollLeft%3B%0A%20%20%20%20%20%20%20%20%20scrolledPos.y%20%3D%20document.documentElement.scrollTop%3B%0A%20%20%20%20%20%20%7D%20else%20if%28%20document.body%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20scrolledPos.x%20%3D%20document.body.scrollLeft%3B%0A%20%20%20%20%20%20%20%20%20scrolledPos.y%20%3D%20document.body.scrollTop%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20/*%20Get%20the%20total%20dimensions%20to%20see%20what%20scroll%20bars%20might%20be%20active%20*/%0A%20%20%20%20%20%20var%20totalDim%3Dnew%20LeoHighlightsDimension%280%2C0%29%0A%20%20%20%20%20%20if%20%28document.all%20%26%26%20document.documentElement%20%26%26%20%0A%20%20%20%20%20%20%09document.documentElement.clientHeight%26%26document.documentElement.clientWidth%29%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%09totalDim.width%20%3D%20document.documentElement.scrollWidth%3B%0A%20%20%20%20%20%20%09totalDim.height%20%3D%20document.documentElement.scrollHeight%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20else%20if%20%28document.all%29%0A%20%20%20%20%20%20%7B%20/*%20This%20is%20in%20IE%20*/%0A%20%20%20%20%20%09%20%09totalDim.width%20%3D%20document.body.scrollWidth%3B%0A%20%20%20%20%20%20%09totalDim.height%20%3D%20document.body.scrollHeight%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%09%20totalDim.width%20%3D%20document.width%3B%0A%20%20%20%20%20%20%09%20totalDim.height%20%3D%20document.height%3B%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20//%20Gets%20the%20location%20of%20the%20available%20screen%20space%0A%20%20%20%20%20%20var%20centerDim%3Dnew%20LeoHighlightsDimension%280%2C0%29%3B%0A%20%20%20%20%20%20if%28self.innerWidth%20%26%26%20self.innerHeight%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20centerDim.width%20%3D%20self.innerWidth-%28totalDim.height%3Eself.innerHeight?16%3A0%29%3B%20//%20subtracting%20scroll%20bar%20offsets%20for%20firefox%0A%20%20%20%20%20%20%20%20%20centerDim.height%20%3D%20self.innerHeight-%28totalDim.width%3Eself.innerWidth?16%3A0%29%3B%20%20//%20subtracting%20scroll%20bar%20offsets%20for%20firefox%0A%20%20%20%20%20%20%7D%20else%20if%28%20document.documentElement%20%26%26%20document.documentElement.clientHeight%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20centerDim.width%20%3D%20document.documentElement.clientWidth%3B%0A%20%20%20%20%20%20%20%20%20centerDim.height%20%3D%20document.documentElement.clientHeight%3B%0A%20%20%20%20%20%20%7D%20else%20if%28%20document.body%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20centerDim.width%20%3D%20document.body.clientWidth%3B%0A%20%20%20%20%20%20%20%20%20centerDim.height%20%3D%20document.body.clientHeight%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20//%20Get%20the%20current%20dimension%20of%20the%20popup%20element%0A%20%20%20%20%20%20var%20iFrameDim%3Dnew%20LeoHighlightsDimension%28iFrame.offsetWidth%2CiFrame.offsetHeight%29%0A%20%20%20%20%20%20if%20%28iFrameDim.width%20%3C%3D%200%29%0A%20%20%20%20%20%20%09iFrameDim.width%20%3D%20iFrame.style.width.substring%280%2C%20iFrame.style.width.indexOf%28%27px%27%29%29%3B%0A%20%20%20%20%20%20if%20%28iFrameDim.height%20%3C%3D%200%29%0A%20%20%20%20%20%20%09iFrameDim.height%20%3D%20iFrame.style.height.substring%280%2C%20iFrame.style.height.indexOf%28%27px%27%29%29%3B%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20/*%20Calculate%20the%20position%2C%20lower%20right%20hand%20corner%20by%20default%20*/%0A%20%20%20%20%20%20var%20position%3Dnew%20LeoHighlightsPosition%280%2C0%29%3B%0A%20%20%20%20%20%20position.x%3DscrolledPos.x+centerDim.width-iFrameDim.width-LEO_HIGHLIGHTS_ADJUSTMENT.x%3B%0A%20%20%20%20%20%20position.y%3DscrolledPos.y+centerDim.height-iFrameDim.height-LEO_HIGHLIGHTS_ADJUSTMENT.y%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20if%28anchor%21%3Dnull%29%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20//centerDim%20in%20relation%20to%20the%20anchor%20element%20if%20available%0A%20%20%20%20%20%20%20%20%20var%20topOrBottom%20%3D%20false%3B%0A%20%20%20%20%20%20%20%20%20var%20anchorPos%3D_leoHighlightsGetLocation%28document.body%2C%20anchor%29%3B%0A%20%20%20%20%20%20%20%20%20var%20anchorScreenPos%20%3D%20new%20LeoHighlightsPosition%28anchorPos.x-scrolledPos.x%2CanchorPos.y-scrolledPos.y%29%3B%0A%20%20%20%20%20%20%20%20%20var%20anchorDim%3Dnew%20LeoHighlightsDimension%28anchor.offsetWidth%2Canchor.offsetHeight%29%0A%20%20%20%20%20%20%20%20%20if%20%28anchorDim.width%20%3C%3D%200%29%0A%20%20%20%20%20%20%20%20%20%09anchorDim.width%20%3D%20anchor.style.width.substring%280%2C%20anchor.style.width.indexOf%28%27px%27%29%29%3B%0A%20%20%20%20%20%20%20%20%20if%20%28anchorDim.height%20%3C%3D%200%29%0A%20%20%20%20%20%20%20%20%20%09anchorDim.height%20%3D%20anchor.style.height.substring%280%2C%20anchor.style.height.indexOf%28%27px%27%29%29%3B%0A%0A%20%20%20%20%20%20%20%20%20//%20Check%20if%20the%20popup%20can%20be%20shown%20above%20or%20below%20the%20element%0A%20%20%20%20%20%20%20%20%20if%20%28centerDim.height%20-%20anchorDim.height%20-%20iFrameDim.height%20-%20anchorScreenPos.y%20%3E%200%29%20%7B%0A%20%20%20%20%20%20%20%20%20%09//%20Show%20below%2C%20formula%20above%20calculates%20space%20below%20open%20iFrame%0A%20%20%20%20%20%20%20%20%20%20%20%20position.y%20%3D%20anchorPos.y%20+%20anchorDim.height%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20topOrBottom%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20%20%7D%20else%20if%20%28anchorScreenPos.y%20-%20anchorDim.height%20-%20iFrameDim.height%20%3E%200%29%20%7B%0A%20%20%20%20%20%20%20%20%20%09//%20Show%20above%2C%20formula%20above%20calculates%20space%20above%20open%20iFrame%0A%20%20%20%20%20%20%20%20%20%09position.y%20%3D%20anchorPos.y%20-%20iFrameDim.height%20-%20anchorDim.height%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20topOrBottom%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20if%20%28topOrBottom%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20//%20We%20attempt%20top%20attach%20the%20window%20to%20the%20element%0A%20%20%20%20%20%20%20%20%20%09position.x%20%3D%20anchorPos.x%20-%20iFrameDim.width%20/%202%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28position.x%20%3C%200%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%09position.x%20%3D%200%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20else%20if%20%28position.x%20+%20iFrameDim.width%20%3E%20scrolledPos.x%20+%20centerDim.width%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%09position.x%20%3D%20scrolledPos.x%20+%20centerDim.width%20-%20iFrameDim.width%3B%0A%20%20%20%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20//%20Attempt%20to%20align%20on%20the%20right%20or%20left%20hand%20side%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28centerDim.width%20-%20anchorDim.Width%20-%20iFrameDim.width%20-%20anchorScreenPos.x%20%3E%200%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20position.x%20%3D%20anchorPos.x%20+%20anchorDim.width%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20else%20if%20%28anchorScreenPos.x%20-%20anchorDim.width%20-%20iFrameDim.width%20%3E%200%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%09position.x%20%3D%20anchorPos.x%20-%20anchorDim.width%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20else%20%20//%20default%20to%20below%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20position.y%20%3D%20anchorPos.y%20+%20anchorDim.height%3B%0A%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20/*%20Make%20sure%20that%20we%20don%27t%20go%20passed%20the%20right%20hand%20border%20*/%0A%20%20%20%20%20%20if%28position.x+iFrameDim.width%3EcenterDim.width-20%29%0A%20%20%20%20%20%20%09position.x%3DcenterDim.width-%28iFrameDim.width+20%29%3B%0A%20%20%20%20%20%20%09%09%0A%20%20%20%20%20%20//%20Make%20sure%20that%20we%20didn%27t%20go%20passed%20the%20start%0A%20%20%20%20%20%20if%28position.x%3C0%29%0A%20%20%20%20%20%20%20%20%20position.x%3D0%3B%0A%20%20%20%20%20%20if%28position.y%3C0%29%0A%20%20%20%20%20%20%09position.y%3D0%3B%0A%0A%20%20%20%20%20%20if%20%28LEO_HIGHLIGHTS_DEBUG_POS%26%26LEO_HIGHLIGHTS_DEBUG%29%20%7B%0A%20%20%20%20%20%20%20%20%20alert%28%22%20Popup%20info%20id%3A%20%20%20%20%20%20%20%22%20+iFrame.id+%22%20-%20%22+anchor.id%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20+%20%22%5Cnscrolled%20%20%20%20%20%20%20%20%20%20%22%20+%20scrolledPos%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20+%20%22%5Cncenter/visible%20%20%20%20%22%20+%20centerDim%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20+%20%22%5Cnanchor%20%28absolute%29%20%22%20+%20anchorPos%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20+%20%22%5Cnanchor%20%28screen%29%20%20%20%22%20+%20anchorScreenPos%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20+%20%22%5CnSize%20%28anchor%29%20%20%20%20%20%22%20+%20anchorDim%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20+%20%22%5CnSize%20%28popup%29%20%20%20%20%20%20%22%20+%20iFrameDim%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20+%20%22%5CnResult%20pos%20%20%20%20%20%20%20%20%22%20+%20position%29%3B%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20//%20Set%20the%20popup%20location%0A%20%20%20%20%20%20iFrame.style.left%20%3D%20position.x%20+%20%22px%22%3B%0A%20%20%20%20%20%20iFrame.style.top%20%20%3D%20position.y%20+%20%22px%22%3B%0A%20%20%20%7D%0A%20%20%20catch%28e%29%0A%20%20%20%7B%0A%20%20%20%09_leoHighlightsReportExeception%28%22_leoHighlightsUpdatePopupPos%28%29%22%2Ce%29%3B%20%20%20%09%0A%20%20%20%7D%0A%7D%0A%0A%0A/**%0A%20*%20This%20will%20show%20the%20passed%20in%20element%20as%20a%20popup%0A%20*%20%0A%20*%20@param%20anchorId%0A%20*%20@param%20size%0A%20*%20%0A%20*%20@return%0A%20*/%0Afunction%20_leoHighlightsShowPopup%28anchorId%2Csize%29%0A%7B%0A%20%20%20try%0A%20%20%20%7B%0A%20%20%20%09var%20popup%3Dnew%20LeoHighlightsPopup%28anchorId%2Csize%29%3B%0A%20%20%20%09popup.show%28%29%3B%0A%20%20%20%7D%0A%20%20%20catch%28e%29%0A%20%20%20%7B%0A%20%20%20%09_leoHighlightsReportExeception%28%22_leoHighlightsShowPopup%28%29%22%2Ce%29%3B%20%20%20%09%0A%20%20%20%7D%09%0A%7D%0A%0A%0A/**%0A%20*%20This%20will%20transform%20the%20passed%20in%20url%20to%20a%20rover%20url%0A%20*%20%0A%20*%20@param%20url%0A%20*%20@return%0A%20*/%0Afunction%20_leoHighlightsGetRoverUrl%28url%29%0A%7B%0A%09var%20rover%3D%22711-36858-13496-14%22%3B%0A%09var%20roverUrl%3D%22http%3A//rover.ebay.com/rover/1/%22+rover+%22/4?%26mpre%3D%22+encodeURI%28url%29%3B%0A%09%0A%09return%20roverUrl%3B%0A%7D%0A%0A/**%0A%20*%20Class%20for%20a%20Popup%20%0A%20*%20%0A%20*%20@param%20anchorId%0A%20*%20@param%20size%0A%20*%20%0A%20*%20@return%0A%20*/%0Afunction%20LeoHighlightsPopup%28anchorId%2Csize%29%0A%7B%0A%20%20%20try%0A%20%20%20%7B%0A%20%20%20%09this.anchorId%3DanchorId%3B%0A%20%20%20%09this.anchor%3D_leoHighlightsFindElementById%28this.anchorId%29%3B%0A%20%20%20%09this.iFrame%3D_leoHighlightsFindElementById%28LEO_HIGHLIGHTS_IFRAME_ID%29%3B%0A%20%20%20%09this.iFrameDiv%3D_leoHighlightsFindElementById%28LEO_HIGHLIGHTS_IFRAME_DIV_ID%29%3B%0A%20%20%20%09%0A%20%20%20%09var%20url%3Dunescape%28this.anchor.getAttribute%28%27leoHighlights_url%27%29%29%3B%0A%0A%20%20%20%09this.iFrame.src%3Durl%3B%0A%0A%20%20%20%09leoHighlightsSetSize%28size%29%3B%0A%20%20%20%09%0A%20%20%20%09this.updatePos%3Dfunction%28%29%20%7B%20_leoHighlightsUpdatePopupPos%28this.iFrameDiv%2Cthis.anchor%29%7D%3B%0A%20%20%20%09this.show%3Dfunction%28%29%20%7Bthis.updatePos%28%29%3B%20this.iFrameDiv.style.visibility%20%3D%20%22visible%22%3B%20this.iFrameDiv.style.display%20%3D%20%22block%22%3B%20this.updatePos%28%29%3B%7D%20%20%20%09%09%0A%20%20%20%09this.scroll%3Dfunction%28%29%20%7B%20this.updatePos%28%29%3B%7D%3B%0A%20%20%20%7D%0A%20%20%20catch%28e%29%0A%20%20%20%7B%0A%20%20%20%09_leoHighlightsReportExeception%28%22new%20LeoHighlightsPopup%28%29%22%2Ce%29%3B%20%20%20%09%0A%20%20%20%7D%0A%7D%0A%0A/**%0A*%0A*%20This%20can%20be%20used%20to%20close%20an%20iframe%0A*%0A*%20@param%20id%0A*%20@return%0A*/%0Afunction%20leoHighlightsSetSize%28size%2CclickId%29%0A%7B%0A%09try%0A%09%7B%0A%09%09/*%20Get%20the%20appropriate%20sizes%20*/%0A%20%20%09%09var%20iFrame%3D_leoHighlightsFindElementById%28LEO_HIGHLIGHTS_IFRAME_ID%29%3B%0A%20%20%09%09var%20iFrameDiv%3D_leoHighlightsFindElementById%28LEO_HIGHLIGHTS_IFRAME_DIV_ID%29%3B%0A%20%20%09%09%0A%20%20%09%09/*%20Figure%20out%20the%20correct%20sizes%20*/%0A%20%20%09%09var%20iFrameSize%3D%28size%3D%3D1%29?LEO_HIGHLIGHTS_IFRAME_CLICK_SIZE%3ALEO_HIGHLIGHTS_IFRAME_HOVER_SIZE%3B%0A%20%20%09%09var%20divSize%3D%28size%3D%3D1%29?LEO_HIGHLIGHTS_DIV_CLICK_SIZE%3ALEO_HIGHLIGHTS_DIV_HOVER_SIZE%3B%0A%0A%20%20%09%09/*%20Refresh%20the%20iFrame%27s%20url%2C%20by%20removing%20the%20size%20arg%20and%20adding%20it%20again%20*/%0A%20%20%09%09var%20url%3DiFrame.src%3B%0A%20%20%09%09var%20idx%3Durl.indexOf%28%22%26size%3D%22%29%3B%0A%20%20%09%09if%28idx%3E%3D0%29%0A%20%20%09%09%09url%3Durl.substring%280%2Cidx%29%3B%0A%09%09url+%3D%28%22%26size%3D%22+size%29%3B%0A%09%09if%28clickId%29%0A%09%09%09url+%3D%28%22%26clickId%3D%22+clickId%29%3B%0A%09%09%0A%20%20%09%09iFrame.src%3Durl%3B%0A%20%20%09%09%0A%20%20%09%09/*%20Clear%20the%20hover%20flag%2C%20if%20the%20user%20shows%20this%20at%20full%20size%20*/%0A%20%20%09%09if%28size%3D%3D1%26%26_leoHighlightsPrevElem%29%0A%20%20%09%09%09_leoHighlightsPrevElem.hover%3Dfalse%3B%0A%20%20%09%09%0A%20%20%09%09_leoHighlightsSetSize%28iFrame%2CiFrameSize%29%3B%0A%20%20%09%09_leoHighlightsSetSize%28iFrameDiv%2CdivSize%29%3B%0A%09%7D%0A%09catch%28e%29%0A%09%7B%0A%09%09_leoHighlightsReportExeception%28%22leoHighlightsSetSize%28%29%22%2Ce%29%3B%20%20%20%09%0A%09%7D%0A%7D%0A%0A/**%0A%20*%20Start%20the%20popup%20a%20little%20bit%20delayed.%0A%20*%20Somehow%20IE%20needs%20some%20time%20to%20find%20the%20element%20by%20id.%0A%20*%20%0A%20*%20@param%20anchorId%0A%20*%20@param%20size%0A%20*%20%0A%20*%20@return%0A%20*/%0Afunction%20leoHighlightsShowPopup%28anchorId%2Csize%29%0A%7B%0A%20%20%20try%0A%20%20%20%7B%0A%20%20%09%09var%20elem%3D_leoHighlightsFindElementById%28anchorId%29%3B%0A%20%20%09%09if%28_leoHighlightsPrevElem%26%26%28_leoHighlightsPrevElem%21%3Delem%29%29%0A%20%20%09%09%09_leoHighlightsPrevElem.shown%3Dfalse%3B%0A%20%20%09%09elem.shown%3Dtrue%3B%0A%09%09_leoHighlightsPrevElem%3Delem%3B%0A%20%20%20%09%0A%20%20%20%09/*%20FF%20needs%20to%20find%20the%20element%20first%20*/%0A%20%20%20%09_leoHighlightsFindElementById%28anchorId%29%3B%0A%20%20%20%09%0A%20%20%20%09setTimeout%28%22_leoHighlightsShowPopup%28%5C%27%22+anchorId+%22%5C%27%2C%5C%27%22+size+%22%5C%27%29%3B%22%2C10%29%3B%0A%20%20%20%7D%0A%20%20%20catch%28e%29%0A%20%20%20%7B%0A%20%20%20%09_leoHighlightsReportExeception%28%22leoHighlightsShowPopup%28%29%22%2Ce%29%3B%20%20%20%09%0A%20%20%20%7D%09%0A%7D%0A%0A/**%0A*%0A*%20This%20can%20be%20used%20to%20close%20an%20iframe%0A*%0A*%20@param%20id%0A*%20@return%0A*/%0Afunction%20leoHighlightsHideElem%28id%29%0A%7B%0A%09try%0A%09%7B%0A%09%09/*%20Get%20the%20appropriate%20sizes%20*/%0A%20%20%09%09var%20elem%3D_leoHighlightsFindElementById%28id%29%3B%0A%20%20%09%09if%28elem%29%0A%20%20%09%09%09elem.style.visibility%3D%22hidden%22%3B%0A%20%20%09%09%0A%20%20%09%09/*%20Clear%20the%20page%20for%20the%20next%20run%20through%20*/%0A%20%20%09%09var%20iFrame%3D_leoHighlightsFindElementById%28LEO_HIGHLIGHTS_IFRAME_ID%29%3B%0A%20%20%09%09if%28iFrame%29%0A%20%20%09%09%09iFrame.src%3D%22about%3Ablank%22%3B%0A%20%20%09%09%0A%20%20%09%09%0A%20%20%09%09if%28_leoHighlightsPrevElem%29%0A%20%20%09%09%7B%0A%20%20%09%09%09_leoHighlightsPrevElem.shown%3Dfalse%3B%0A%20%20%09%09%09_leoHighlightsPrevElem%3Dnull%3B%0A%20%20%09%09%7D%0A%09%7D%0A%09catch%28e%29%0A%09%7B%0A%09%09_leoHighlightsReportExeception%28%22leoHighlightsHideElem%28%29%22%2Ce%29%3B%20%20%20%09%0A%09%7D%0A%7D%0A%0A/**%0A*%0A*%20This%20can%20be%20used%20to%20close%20an%20iframe.%0A*%20Since%20the%20iFrame%20is%20reused%20the%20frame%20only%20gets%20hidden%0A*%0A*%20@return%0A*/%0Afunction%20leoHighlightsIFrameClose%28%29%0A%7B%0A%20%20try%0A%20%20%7B%0A%09%20%20_leoHighlightsSimpleGwCallBack%28%22LeoHighlightsHideIFrame%22%29%3B%0A%20%20%7D%0A%20%20catch%28e%29%0A%20%20%7B%0A%09%20%20_leoHighlightsReportExeception%28%22leoHighlightsIFrameClose%28%29%22%2Ce%29%3B%20%20%20%09%0A%20%20%7D%0A%7D%0A%0A/**%0A%20*%20This%20should%20handle%20the%20click%20events%0A%20*%20%0A%20*%20@param%20anchorId%0A%20*%20@return%0A%20*/%0Afunction%20leoHighlightsHandleClick%28anchorId%29%0A%7B%0A%20%20%20try%0A%20%20%20%7B%0A%20%20%09%09var%20anchor%3D_leoHighlightsFindElementById%28anchorId%29%3B%0A%20%20%09%09anchor.hover%3Dfalse%3B%0A%20%20%09%09if%28anchor.startTimer%29%0A%20%20%09%09%09clearTimeout%28anchor.startTimer%29%3B%0A%20%20%20%09%0A%20%20%09%09leoHighlightsEvent%28%22clicked%22%29%3B%0A%20%20%20%09leoHighlightsShowPopup%28anchorId%2C1%29%3B%0A%20%20%20%09return%20false%3B%0A%20%20%20%7D%0A%20%20%20catch%28e%29%0A%20%20%20%7B%0A%20%20%20%09_leoHighlightsReportExeception%28%22leoHighlightsHandleClick%28%29%22%2Ce%29%3B%20%20%20%09%0A%20%20%20%7D%09%0A%7D%0A%0A/**%0A%20*%20This%20should%20handle%20the%20hover%20events%0A%20*%20%0A%20*%20@param%20anchorId%0A%20*%20@return%0A%20*/%0Afunction%20leoHighlightsHandleHover%28anchorId%29%0A%7B%0A%20%20%20try%0A%20%20%20%7B%0A%20%20%09%09var%20anchor%3D_leoHighlightsFindElementById%28anchorId%29%3B%0A%20%20%09%09anchor.hover%3Dtrue%3B%0A%20%20%09%09%0A%20%20%09%09leoHighlightsEvent%28%22hovered%22%29%3B%0A%20%20%20%09leoHighlightsShowPopup%28anchorId%2C0%29%3B%0A%20%20%20%09return%20false%3B%0A%20%20%20%7D%0A%20%20%20catch%28e%29%0A%20%20%20%7B%0A%20%20%20%09_leoHighlightsReportExeception%28%22leoHighlightsHandleHover%28%29%22%2Ce%29%3B%20%20%20%09%0A%20%20%20%7D%09%0A%7D%0A%0A/**%0A%20*%20This%20will%20handle%20the%20mouse%20over%20setup%20timers%20for%20the%20appropriate%20timers%0A%20*%20%0A%20*%20@param%20id%0A%20*%20@return%0A%20*/%0Afunction%20leoHighlightsHandleMouseOver%28id%29%0A%7B%0A%09try%0A%09%7B%0A%09%09var%20anchor%3D_leoHighlightsFindElementById%28id%29%3B%09%09%0A%0A%09%09/*%20Clear%20the%20end%20timer%20if%20required%20*/%0A%09%09if%28anchor.endTimer%29%0A%09%09%09clearTimeout%28anchor.endTimer%29%3B%0A%09%09anchor.endTimer%3Dnull%3B%0A%09%09%0A%09%09anchor.style.background%3DLEO_HIGHLIGHTS_BACKGROUND_STYLE_HOVER%3B%0A%09%09%0A%09%09/*%20The%20element%20is%20already%20showing%20we%20are%20done%20*/%0A%09%09if%28anchor.shown%29%0A%09%09%09return%3B%0A%09%09%0A%09%09/*%20Setup%20the%20start%20timer%20if%20required%20*/%0A%09%09anchor.startTimer%3DsetTimeout%28function%28%29%7B%0A%09%09%09leoHighlightsHandleHover%28anchor.id%29%3B%0A%09%09%09anchor.hover%3Dtrue%3B%0A%09%09%09%7D%2C%0A%09%09%09LEO_HIGHLIGHTS_SHOW_DELAY_MS%29%3B%0A%09%7D%0A%09catch%28e%29%0A%09%7B%0A%09%09_leoHighlightsReportExeception%28%22leoHighlightsHandleMouseOver%28%29%22%2Ce%29%3B%20%20%20%09%0A%09%7D%0A%7D%0A%0A/**%0A%20*%20This%20will%20handle%20the%20mouse%20over%20setup%20timers%20for%20the%20appropriate%20timers%0A%20*%20%0A%20*%20@param%20id%0A%20*%20@return%0A%20*/%0Afunction%20leoHighlightsHandleMouseOut%28id%29%0A%7B%0A%09try%0A%09%7B%09%0A%09%09var%20anchor%3D_leoHighlightsFindElementById%28id%29%3B%0A%09%09%0A%09%09/*%20Clear%20the%20start%20timer%20if%20required%20*/%0A%09%09if%28anchor.startTimer%29%0A%09%09%09clearTimeout%28anchor.startTimer%29%3B%0A%09%09anchor.startTimer%3Dnull%3B%0A%09%09%0A%09%09anchor.style.background%3DLEO_HIGHLIGHTS_BACKGROUND_STYLE_DEFAULT%3B%0A%09%09if%28%21anchor.shown||%21anchor.hover%29%0A%09%09%09return%3B%0A%09%09%0A%09%09/*%20Setup%20the%20start%20timer%20if%20required%20*/%0A%09%09anchor.endTimer%3DsetTimeout%28function%28%29%7B%0A%09%09%09leoHighlightsHideElem%28LEO_HIGHLIGHTS_IFRAME_DIV_ID%29%3B%0A%09%09%09anchor.shown%3Dfalse%3B%0A%09%09%09_leoHighlightsPrevElem%3Dnull%3B%0A%09%09%09%7D%2CLEO_HIGHLIGHTS_HIDE_DELAY_MS%29%3B%0A%09%7D%0A%09catch%28e%29%0A%09%7B%0A%09%09_leoHighlightsReportExeception%28%22leoHighlightsHandleMouseOut%28%29%22%2Ce%29%3B%20%20%20%09%0A%09%7D%0A%7D%0A%0A/**%0A%20*%20This%20handles%20the%20mouse%20movement%20into%20the%20currently%20opened%20window.%0A%20*%20Just%20clear%20the%20close%20timer%0A%20*%20%0A%20*%20@return%0A%20*/%0Afunction%20leoHighlightsHandleIFrameMouseOver%28%29%0A%7B%0A%09try%0A%09%7B%0A%09%09if%28_leoHighlightsPrevElem%26%26_leoHighlightsPrevElem.endTimer%29%0A%09%09%09clearTimeout%28_leoHighlightsPrevElem.endTimer%29%3B%0A%09%7D%0A%09catch%28e%29%0A%09%7B%0A%09%09_leoHighlightsReportExeception%28%22leoHighlightsHandleIFrameMouseOver%28%29%22%2Ce%29%3B%20%20%20%09%0A%09%7D%0A%7D%0A%0A/**%0A%20*%20This%20handles%20the%20mouse%20movement%20into%20the%20currently%20opened%20window.%0A%20*%20Just%20clear%20the%20close%20timer%0A%20*%20%0A%20*%20@param%20id%0A%20*%20@return%0A%20*/%0Afunction%20leoHighlightsHandleIFrameMouseOut%28%29%0A%7B%0A%09try%0A%09%7B%0A%09%09if%28_leoHighlightsPrevElem%29%0A%09%09%09leoHighlightsHandleMouseOut%28_leoHighlightsPrevElem.id%29%3B%0A%09%7D%0A%09catch%28e%29%0A%09%7B%0A%09%09_leoHighlightsReportExeception%28%22leoHighlightsHandleIFrameMouseOut%28%29%22%2Ce%29%3B%20%20%20%09%0A%09%7D%0A%7D%0A/**%0A%20*%20This%20is%20a%20method%20is%20used%20to%20make%20the%20javascript%20within%20IE%20runnable%0A%20*/%0Avar%20leoHighlightsRanUpdateDivs%3Dfalse%3B%0Afunction%20leoHighlightsUpdateDivs%28%29%0A%7B%0A%09try%0A%09%7B%0A%09%09/*%20Check%20if%20this%20is%20an%20IE%20browser%20and%20if%20divs%20have%20been%20updated%20already%20*/%0A%09%09if%28document.all%26%26%21leoHighlightsRanUpdateDivs%29%0A%09%09%7B%0A%09%09%09leoHighlightsRanUpdateDivs%3Dtrue%3B%20//%20Set%20early%20to%20prevent%20running%20twice%0A%09%09%09for%28var%20i%3D0%3Bi%3CLEO_HIGHLIGHTS_MAX_HIGHLIGHTS%3Bi++%29%0A%09%09%09%7B%0A%09%09%09%09var%20id%3D%22leoHighlights_Underline_%22+i%3B%0A%09%09%09%09var%20elem%3D_leoHighlightsFindElementById%28id%29%3B%0A%09%09%09%09if%28elem%3D%3Dnull%29%0A%09%09%09%09%09break%3B%0A%09%09%09%09%0A%09%09%09%09if%28%21elem.leoChanged%29%0A%09%09%09%09%7B%0A%09%09%09%09%09elem.leoChanged%3Dtrue%3B%0A%09%09%09%09%0A%09%09%09%09%09/*%20This%20will%20make%20javaScript%20runnable%20*/%09%09%09%09%0A%09%09%09%09%09elem.outerHTML%3Delem.outerHTML%3B%0A%09%09%09%09%7D%0A%09%09%09%7D%0A%09%09%7D%0A%09%7D%0A%09catch%28e%29%0A%09%7B%0A%09%09_leoHighlightsReportExeception%28%22leoHighlightsUpdateDivs%28%29%22%2Ce%29%3B%20%20%20%09%0A%09%7D%0A%7D%0A%0Aif%28document.all%29%0A%09setTimeout%28leoHighlightsUpdateDivs%2C200%29%3B%0A%0A/**%0A%20*%20This%20is%20used%20to%20report%20events%20to%20the%20plugin%0A%20*%20@param%20key%0A%20*%20@param%20sub%0A%20*%20@return%0A%20*/%0Afunction%20leoHighlightsEvent%28key%2C%20sub%29%0A%7B%0A%20%20%20try%0A%20%20%20%7B%0A%20%20%20%20%20%20var%20gwObj%20%3D%20new%20Gateway%28%29%3B%0A%20%20%20%20%20%20gwObj.addParam%28%22key%22%2C%20key%29%3B%0A%20%20%20%20%20%20gwObj.addParam%28%22sub%22%2C%20sub%29%3B%0A%20%20%20%20%20%20gwObj.callName%28%22LeoHighlightsEvent%22%29%3B%09%0A%20%20%20%7D%0A%20%20%20catch%28e%29%0A%20%20%20%7B%0A%20%20%20%09_leoHighlightsReportExeception%28%22leoHighlights%28%29%22%2Ce%29%3B%20%20%20%09%0A%20%20%20%7D%0A%7D%0A%0A/*----------------------------------------------------------------------*/%0A/*%20Methods%20provided%20to%20the%20highlight%20providers...%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20*/%0A/*----------------------------------------------------------------------*/%0A%0A/**%0A%20*%20This%20will%20redirect%20the%20top%20window%20to%20the%20passed%20in%20url%0A%20*%20%0A%20*%20@param%20url%0A%20*%20@param%20parentId%0A%20*%20@return%0A%20*/%0Afunction%20leoHL_RedirectTop%28url%2CparentId%29%0A%7B%0A%20%20%20try%0A%20%20%20%7B%0A%20%20%09%09leoHighlightsEvent%28%22clicked.2eBay%22%29%3B%0A%20%20%20%09_leoHighlightsRedirectTop%28url%29%3B%0A%20%20%20%7D%0A%20%20%20catch%28e%29%0A%20%20%20%7B%0A%20%20%20%09_leoHighlightsReportExeception%28%22leoHL_RedirectTop%28%29%22%2Ce%29%3B%20%20%20%09%0A%20%20%20%7D%0A%7D%0A%0A/**%0A%20*%20This%20will%20set%20the%20size%20of%20the%20iframe%0A%20*%20%0A%20*%20@param%20url%0A%20*%20@param%20parentId%0A%20*%20%0A%20*%20@return%0A%20*/%0Afunction%20leoHl_setSize%28size%2Curl%29%0A%7B%0A%20%20%20try%0A%20%20%20%7B%0A%20%20%20%09/*%20Get%20the%20clickId%20*/%0A%20%20%20%09var%20clickId%3D_leoHighlightsGetUrlArg%28%20url%2C%22clickId%22%29%0A%20%20%20%09%0A%20%20%20%20%20%20var%20gwObj%20%3D%20new%20Gateway%28%29%3B%0A%20%20%20%20%20%20gwObj.addParam%28%22size%22%2Csize%29%3B%0A%20%20%20%20%20%20if%28clickId%29%0A%20%20%20%20%20%20%20%20%20gwObj.addParam%28%22clickId%22%2CclickId+%22_blah%22%29%3B%0A%20%20%20%20%20%20gwObj.callName%28%22LeoHighlightsSetSize%22%29%3B%0A%20%20%20%7D%0A%20%20%20catch%28e%29%0A%20%20%20%7B%0A%20%20%20%09_leoHighlightsReportExeception%28%22leoHl_setSize%28%29%22%2Ce%29%3B%20%20%20%09%0A%20%20%20%7D%0A%7D%0A");
]]&gt;</script></span></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.quadraforte.com/?feed=rss2&amp;p=29</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>DjangoWatch: Developing Twitter-Follow on GAE</title>
		<link>http://blog.quadraforte.com/?p=24</link>
		<comments>http://blog.quadraforte.com/?p=24#comments</comments>
		<pubDate>Tue, 28 Apr 2009 23:47:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[web2py]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[djangowatch]]></category>

		<guid isPermaLink="false">http://blog.quadraforte.com/?p=24</guid>
		<description><![CDATA[Lakshman has an awesome tutorial on how to deploy Twitter-Follow on GAE. He muses in the end how easy it is to deploy this on GAE:
&#8220;You don’t bother about deployment, server maintenance or log files. Rather, check out the awesome application admin dashboard and if you run out of the allocated free quota, buy some [...]]]></description>
			<content:encoded><![CDATA[<p><a title="Lakshman on Twitter-Follow Deployment on GAE" href="http://uswaretech.com/blog/2009/04/develop-twitter-api-application-in-django-and-deploy-on-google-app-engine/" target="_self">Lakshman</a> has an awesome tutorial on how to deploy <a title="Twitter-Follow API" href="http://twitter-follow.appspot.com/" target="_self">Twitter-Follow</a> on GAE. He muses in the end how easy it is to deploy this on <a title="Google App Engine" href="http://code.google.com/appengine/" target="_self">GAE</a>:</p>
<blockquote><p><em>&#8220;<strong>You don’t bother about deployment, server maintenance or log files. Rather, check out the awesome <a onclick="javascript:pageTracker._trackPageview('/outbound/article/appengine.google.com');" href="http://appengine.google.com/dashboard?&amp;app_id=twitter-follow">application admin dashboard</a> and if you run out of the allocated free quota, buy some more resource time. Its costs $0.10/CPU hour and one cent for 100 emails sent!</strong></em></p>
<p><em>A lot is happening in the field of App Engine support for twitter API. There is even a new App Engine module for twitter <a onclick="javascript:pageTracker._trackPageview('/outbound/article/github.com');" href="http://github.com/tav/tweetapp/tree/master">oAuth authentication</a>, out of the box, as there is <a onclick="javascript:pageTracker._trackPageview('/outbound/article/www.djangosnippets.org');" href="http://www.djangosnippets.org/snippets/1353/">one for django</a>.</em></p>
<p><em>App Engine is a powerful platform. django is a high productive framework. Combining them is very powerful and there is also an <a onclick="javascript:pageTracker._trackPageview('/outbound/article/code.djangoproject.com');" href="http://code.djangoproject.com/wiki/AppEngine">ongoing project</a> for enhancing the the patch project and making it totally compatible with django.&#8221;</em></p></blockquote>
<p>Can a <strong><a title="Home of Web2Py" href="http://www.web2py.com/" target="_self">Web2Py</a> </strong>version be far behind?</p>
<p>posted by Paul<a title="The Pageman in Multiply" href="http://pageman.multiply.com" target="_self"> &#8220;The Pageman&#8221;</a> Pajo</p>
<input id="gwProxy" type="hidden" />
<input id="jsProxy" onclick="jsCall();" type="hidden" />
]]></content:encoded>
			<wfw:commentRss>http://blog.quadraforte.com/?feed=rss2&amp;p=24</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Josh Steiner&#8217;s Notes on GAE Meetup</title>
		<link>http://blog.quadraforte.com/?p=21</link>
		<comments>http://blog.quadraforte.com/?p=21#comments</comments>
		<pubDate>Fri, 27 Mar 2009 19:15:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[GAE]]></category>
		<category><![CDATA[Joel]]></category>
		<category><![CDATA[meetup]]></category>
		<category><![CDATA[notes]]></category>
		<category><![CDATA[Steiner]]></category>

		<guid isPermaLink="false">http://blog.quadraforte.com/?p=21</guid>
		<description><![CDATA[Joel Steiner took some pretty awesome notes during the last GAE meetup. He has some concerns though about the future of GAE on the following fronts:

Vendor lockin - &#8220;If you code to GAE, how can you break your app out of their system and run it on a competitors system if for some reason GAE&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://vitriolix.com/" target="_self">Joel Steiner</a> took some pretty awesome <a title="GAE Meetup Notes by Joel Steiner" href="http://vitriolix.com/2009/03/google-app-engine-meetup-notes.html" target="_self">notes</a> during the last GAE meetup. He has some concerns though about the future of GAE on the following fronts:</p>
<ul>
<li><span style="font-weight: bold;"><span style="color: #ff0000;">Vendor lockin </span>- <em>&#8220;If you code to GAE, how can you break your app out of their system and run it on a competitors system if for some reason GAE&#8217;s terms, price or other features just aren&#8217;t cutting it for you.&#8221;</em></span></li>
<li><span style="font-weight: bold;"><span style="color: #ff0000;">Importing Ginormous amounts of data</span> &#8211; <em>&#8220;Since you pay per transaction, and for data transferred and stored, the thought of trying to import my 10 million record events database was a bit scary.&#8221;</em></span></li>
<li><span style="font-weight: bold;"><span style="font-weight: bold;"><span style="color: #ff0000;">Refactoring your data</span> &#8211; </span><em>&#8220;So lets say you&#8217;ve gotten your 15 millions records happily into the Google datastore, but suddenly business requirements change and you need to significantly refactor the way your data is structured. Now, this is a hard situation in any database system, but the thought of only having external API access to do this amount of work is daunting.&#8221;</em></span></li>
</ul>
<input id="gwProxy" type="hidden" />
<input id="jsProxy" onclick="jsCall();" type="hidden" />
]]></content:encoded>
			<wfw:commentRss>http://blog.quadraforte.com/?feed=rss2&amp;p=21</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Is SOASTA the first true killer app for multiple cloud providers?</title>
		<link>http://blog.quadraforte.com/?p=17</link>
		<comments>http://blog.quadraforte.com/?p=17#comments</comments>
		<pubDate>Fri, 20 Feb 2009 10:07:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA["load & performance testing"]]></category>
		<category><![CDATA[cross-cloud]]></category>
		<category><![CDATA[SOASTA]]></category>

		<guid isPermaLink="false">http://blog.quadraforte.com/?p=17</guid>
		<description><![CDATA[Everyone&#8217;s talking about the &#8220;cloud&#8221; and what would a &#8220;killer app&#8221; look like.
Is SOASTA the killer app that cloud-watchers are waiting for?
Reuven Coven asserts as much in his blog post:
&#8220;Back to what I find interesting about this new scheme; traditionally performance testing has been a kind of &#8220;best guess&#8221; scenario. Although there are many testing [...]]]></description>
			<content:encoded><![CDATA[<p>Everyone&#8217;s talking about the &#8220;cloud&#8221; and what would a &#8220;killer app&#8221; look like.</p>
<p>Is <a title="SOASTA on Cloud Testing" href="http://www.soasta.com/blog/?p=142" target="_self">SOASTA</a> the killer app that cloud-watchers are waiting for?</p>
<p><a title="Reuven Cohen on SOASTA" href="http://www.elasticvapor.com/2009/02/testing-world-wide-cloud.html" target="_self">Reuven Coven</a> asserts as much in <a title="Reuven Cohen on SOASTA" href="http://www.elasticvapor.com/2009/02/testing-world-wide-cloud.html" target="_self">his blog post</a>:</p>
<blockquote><p><em>&#8220;Back to what I find interesting about this new scheme; traditionally performance testing has been a kind of &#8220;best guess&#8221; scenario. Although there are many testing frameworks available most of which create a hypothetical experience using a set of static machines typically limited to one or two geographic locations. With the emergence of a global supply of regional cloud providers SOASTA is tapping into almost limitless capacity to test your application environment in a proactive fashion. Until the emergence of cloud based infrastructures testing beyond a few hundred thousand users was impossible, now you can slap together a few regionalized clouds and realistically see how 3 million or more users around the globe will actually experience your application and infrastructure. This is specially important in emerging markets such as China and India where even a low usage site can routinely get millions of users.&#8221;</em></p></blockquote>
<p>What is <a title="SOASTA for Cloud Testing" href="http://www.soasta.com/blog/?p=142" target="_self">SOASTA</a>? According to their <a title="SOASTA for Cloud Testing" href="http://www.soasta.com/blog/?p=142" target="_self">blog post</a>:</p>
<blockquote><p><em>&#8220;For the past several months we (SOASTA) have been performing global load and performance tests by leveraging multiple cloud platforms (cross-cloud testing) to generate and simulate Web traffic originating from around the world. Up until last November we had been limited to using Amazon’s New Jersey locations. Now we have access to and can generate traffic (load) from 15 locations around the globe. For the several customers that have experienced it, the results have been amazing. While simulating global traffic is not all together new, using cloud computing makes it, for the first time<strong>, fast, scalable</strong>, <strong>and</strong> <strong>affordable</strong>. Tomorrow we will announce the availability of The First Cloud-Based Global Test Platform. This New Test Platform is NOW available to all corporations around the world for Global Load testing on there web applications.   Prices starts at $1,000/Test Hour.&#8221;</em></p></blockquote>
<p><a title="SOASTA site" href="http://www.soasta.com/" target="_self">SOASTA</a> is an idea whose time as come because for the first time in history, by leveraging cross-cloud testing, load and performance testing can now be simulated &#8211; it might even make the concept of an SLA obsolete &#8211; maybe thing would be cross-cloud l&amp;p testing certifications?</p>
<p>posted by Paul <a title="The Pageman in Multiply" href="http://pageman.multiply.com" target="_self">&#8220;The Pageman&#8221;</a> Pajo</p>
<input id="gwProxy" type="hidden" />
<input id="jsProxy" onclick="jsCall();" type="hidden" />
]]></content:encoded>
			<wfw:commentRss>http://blog.quadraforte.com/?feed=rss2&amp;p=17</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
