<?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>Will's Blog &#187; JavaScript</title>
	<atom:link href="http://will.id.au/blog/archive/category/javascript/feed" rel="self" type="application/rss+xml" />
	<link>http://will.id.au/blog</link>
	<description>My random thoughts about stuff</description>
	<lastBuildDate>Wed, 31 Mar 2010 00:27:49 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Paging the DataList</title>
		<link>http://will.id.au/blog/archive/2008/04/01/paging-the-datalist</link>
		<comments>http://will.id.au/blog/archive/2008/04/01/paging-the-datalist#comments</comments>
		<pubDate>Tue, 01 Apr 2008 06:09:21 +0000</pubDate>
		<dc:creator>will</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://will.id.au/blog/archive/2008/04/01/paging-the-datalist</guid>
		<description><![CDATA[A few days ago I looked at various solutions to enhance an exhisting DataList control at work. The DataList brings back a fair bit of data from several different tables and seemed a bit bloated. The first solution I looked at was data paging and only showing rows as needed. The DataList doesn&#8217;t come with [...]]]></description>
			<content:encoded><![CDATA[<p>A few days ago I looked at various solutions to enhance an exhisting DataList control at work.</p>
<p>The DataList brings back a fair bit of data from several different tables and seemed a bit bloated.</p>
<p>The first solution I looked at was data paging and only showing rows as needed. The DataList doesn&#8217;t come with built in Paging capabilities, so you&#8217;ll need to write your own. Scott Guthrie has a great post about <a href="http://weblogs.asp.net/scottgu/archive/2006/01/07/434787.aspx">Efficient Data Paging with the DataList control</a>.</p>
<p>Although that is a great solution, in this current environment of Ajaxifying everything you can get your fingers upon I found a greatÂ open sourceÂ product named <a href="http://dotnetslackers.com/projects/AjaxDataControls/Default.aspx">Ajax Data Controls (or ADC for short)</a>Â and their <a href="http://dotnetslackers.com/projects/AjaxDataControls/DataList/Paging.aspx">DataList Paging example</a>. You can download the controls from their <a href="http://www.codeplex.com/AjaxDataControls">CodePlex page</a>.</p>
<p>The controlsÂ are basicallyÂ an AjaxifiedÂ replacement for the exhisting ASP.NET 2.0 Data Controls (GridView/DataList/Repeater), with a few minor differences.</p>
<p>One of the authors, Kazi Manzur RashidÂ has a great <a href="http://weblogs.asp.net/rashid/archive/2007/12/03/ajaxdatacontrols-gridview-part-one.aspx">blog post on how to use their GridView control</a>.</p>
<p>A third solution is to use theÂ <a href="http://msdn2.microsoft.com/system.web.ui.webcontrols.pageddatasource">PagedDataSource</a>, which comes with ASP.NET 2.0. Sreejith Thathanattu has posted a goodÂ example ofÂ using theÂ <a href="http://www.codeproject.com/Kb/aspnet/pagingBySreejith%20Thathanattu.aspx">PagedDataSourceÂ on CodeProject with the DataList</a>. If you decide to go down this path, consider assigning a Cached version of your DataSource to PagedDataSource as that will help with performance (you&#8217;ll be hitting the Database less).</p>
]]></content:encoded>
			<wfw:commentRss>http://will.id.au/blog/archive/2008/04/01/paging-the-datalist/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Internet Explorer 8 Beta 1 &#8211; Changes for Devs</title>
		<link>http://will.id.au/blog/archive/2008/03/06/internet-explorer-8-beta-1-changes-for-devs</link>
		<comments>http://will.id.au/blog/archive/2008/03/06/internet-explorer-8-beta-1-changes-for-devs#comments</comments>
		<pubDate>Thu, 06 Mar 2008 00:22:39 +0000</pubDate>
		<dc:creator>will</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://will.id.au/blog/archive/2008/03/06/internet-explorer-8-beta-1-changes-for-devs</guid>
		<description><![CDATA[The IE Team have just announced the availability of Beta 1Â of IE8 for developers. You can read more about that on their blog. Obviously as a web developer, the mind immediately turns to &#8220;so, what&#8217;s in it for me?&#8221;. Picked up the following points from an MSDN Doc on what&#8217;s new for IE8: Accessibility No [...]]]></description>
			<content:encoded><![CDATA[<p>The IE Team have just <a href="http://blogs.msdn.com/ie/archive/2008/03/05/internet-explorer-8-beta-1-for-developers-now-available.aspx">announced the availability of Beta 1</a>Â of IE8 for developers. You can read more about that on their blog.</p>
<p>Obviously as a web developer, the mind immediately turns to &#8220;so, what&#8217;s in it for me?&#8221;.</p>
<p>Picked up the following points from an <a href="http://msdn2.microsoft.com/en-us/library/cc288472(VS.85).aspx">MSDN Doc on what&#8217;s new for IE8</a>:</p>
<ul>
<li><strong><a href="http://msdn2.microsoft.com/en-us/library/cc304059(VS.85).aspx">Accessibility</a></strong>
<ul>
<li>No more &#8220;alt&#8221; for image alternate text/tooltip. So use <a href="http://www.w3.org/TR/html401/struct/global.html#adef-title">title</a> or <a href="http://www.w3.org/TR/html401/struct/objects.html#adef-longdesc-IMG">longdesc</a> instead.</li>
</ul>
</li>
<li><strong>ActiveX</strong>
<ul>
<li>Per-Site ActiveX -Â Permission to allow ActiveX controls to run on a site-by-site basis.</li>
<li>Non-Admin install &#8211; Allows non-admin users to install ActiveX controls to their user profiles (no UAC).</li>
</ul>
</li>
<li><strong>Activities &amp; WebSlices</strong>
<ul>
<li><a href="http://msdn2.microsoft.com/en-us/library/cc287851(VS.85).aspx">Services</a></li>
<li><a href="http://msdn2.microsoft.com/en-us/library/cc196992(VS.85).aspx">WebSlices</a></li>
</ul>
</li>
<li><strong>Ajax Enhancements</strong>
<ul>
<li>Ajax Navigation &#8211; Allows browser back button to work when doing ajax based navigation.</li>
<li><a href="http://msdn2.microsoft.com/en-us/library/cc304135(VS.85).aspx">XMLHttpRequest Enhancements</a>
<ul>
<li>Connection <a href="http://msdn2.microsoft.com/en-us/library/cc304105(VS.85).aspx">timeout</a> <em>(read/write)</em> property</li>
<li><a href="http://msdn2.microsoft.com/en-us/library/cc304109(VS.85).aspx">ontimeout event</a></li>
</ul>
</li>
<li>Max Concurrent Connections default changed from 2 to 6. <em>You can </em><a href="http://blogs.msdn.com/nickmac/archive/2004/08/25/how-to-speed-up-http-requests-on-internet-explorer.aspx"><em>change the registry to get this for current versions of IE</em></a><em>.</em><br />
In IE8, a developer has access to the following JavaScript properties: <a href="http://msdn2.microsoft.com/en-us/library/cc197013(VS.85).aspx">window.maxConnectionsPerServer</a> and <a href="http://msdn2.microsoft.com/en-us/library/cc197012(VS.85).aspx">window.maxConnectionsPerServer_01</a>Â <em>(both read only)</em></li>
<li>
<p align="left">Changed window.navigator.onLine behaviour from being a user-set (File -&gt; Work Offline) <a href="http://msdn2.microsoft.com/en-us/library/aa768170(VS.85).aspx">global &#8220;offline&#8221;</a>, to now indicating whether a user is connected to a network.<br />
Also, new events <a href="http://msdn2.microsoft.com/en-us/library/cc304126(VS.85).aspx">onOffLine</a>Â and <a href="http://msdn2.microsoft.com/en-us/library/cc304127(VS.85).aspx">onOnLine</a>.</p>
</li>
<li>
<p align="left">Cross Domain Request (XDR) &#8211; A new object introduced, XDomainRequest. From the MSDN page &#8211; &#8220;allow restricted and secure communication between untrusted modules in the page. The browser shields the user from potential threats while allowing powerful cross-site interaction. &#8220;</p>
</li>
<li>
<p align="left">Cross Document Messaging based on <a href="http://msdn2.microsoft.com/en-us/library/cc197015(VS.85).aspx">postMessage</a>. From MSDN Page &#8211; &#8220;allows cooperative text exchange between untrusted modules from different domains embedded within a page.&#8221;</p>
</li>
</ul>
</li>
<li>
<p align="left"><strong><a href="http://msdn2.microsoft.com/en-us/library/cc304082(VS.85).aspx">CSS</a></strong></p>
<ul>
<li>
<p align="left"><a href="http://en.wikipedia.org/wiki/Data:_URI_scheme">data:URI</a>Â - Allows one to embed small data resources (eg: small images). <a href="http://www.sveinbjorn.org/dataurls_css">Here&#8217;s an example</a>.</p>
</li>
<li>
<p align="left">Floats &#8211; Several fixes and <a href="http://msdn2.microsoft.com/en-us/library/ms533776.aspx">hasLayout</a> removed from IE8.</p>
</li>
<li>
<p align="left"><a href="http://www.w3.org/TR/REC-CSS2/box.html#collapsing-margins">Margin Collapsing</a>Â now complies with CSS2.1</p>
</li>
<li>
<p align="left">New <a href="http://msdn2.microsoft.com/en-us/library/cc304078(VS.85).aspx">:before</a>, <a href="http://msdn2.microsoft.com/en-us/library/cc304076(VS.85).aspx">:after</a> and <a href="http://msdn2.microsoft.com/en-us/library/cc304080(VS.85).aspx">:focus</a> pseudo classes, with associated <a href="http://msdn2.microsoft.com/en-us/library/cc196962(VS.85).aspx">content</a> attribute. Also see w3c article on CSS 2.1 <a href="http://www.w3.org/TR/CSS21/generate.html">Generated Content</a> and <a href="http://www.w3.org/TR/CSS21/selector.html">Selectors</a>.</p>
</li>
<li>
<p align="left"><a href="http://msdn2.microsoft.com/en-us/library/cc196967(VS.85).aspx">outline</a>.</p>
</li>
<li>
<p align="left">Printing Changes</p>
<ul>
<li>
<p align="left"><a href="http://msdn2.microsoft.com/en-us/library/cc196971(VS.85).aspx">page-break-inside</a></p>
</li>
<li>
<p align="left"><a href="http://msdn2.microsoft.com/en-us/library/cc196972(VS.85).aspx">widows</a> attribute</p>
</li>
<li>
<p align="left"><a href="http://msdn2.microsoft.com/en-us/library/cc196966(VS.85).aspx">orphans</a></p>
</li>
</ul>
</li>
<li>
<p align="left">CSS Table Layout enhancements.</p>
</li>
<li>
<p align="left">text-decoration now conforms to CSS 2.1.</p>
</li>
<li>
<p align="left"><a href="http://msdn2.microsoft.com/en-us/library/cc196983(VS.85).aspx">border-spacing</a></p>
</li>
<li>
<p align="left"><a href="http://msdn2.microsoft.com/en-us/library/cc196961(VS.85).aspx">caption-side</a></p>
</li>
<li>
<p align="left">Counters &amp; Numbering &#8211; <a href="http://msdn2.microsoft.com/en-us/library/cc196964(VS.85).aspx">counter-reset</a>, <a href="http://msdn2.microsoft.com/en-us/library/cc196963(VS.85).aspx">counter-increment</a>.</p>
</li>
<li>
<p align="left">Support for <a href="http://www.w3.org/TR/css3-ruby/">CSS3 Ruby Module</a>. Mainly used for East Asian documents for pronunciation/short annotation purposes. <em>Pretty cool, especially for those asian language learning sites.</em></p>
</li>
<li>
<p align="left">Additional <a href="http://msdn2.microsoft.com/en-us/library/ms530797(VS.85).aspx">list-style-type</a> values.</p>
</li>
<li>
<p align="left"><a href="http://msdn2.microsoft.com/en-us/library/ms531182(VS.85).aspx">white-space</a></p>
</li>
<li>
<p align="left"><a href="http://msdn2.microsoft.com/en-us/library/ms531188(VS.85).aspx">z-index</a></p>
</li>
</ul>
</li>
<li>
<p align="left"><a href="http://msdn2.microsoft.com/en-us/library/cc304131(VS.85).aspx">Developer Tools</a></p>
<ul>
<li>
<p align="left">CSS Tool</p>
</li>
<li>
<p align="left">Light-Weight <a href="http://msdn2.microsoft.com/en-us/library/cc304130(VS.85).aspx">Script Debugger</a></p>
</li>
<li>
<p align="left">Version Mode switching.</p>
</li>
</ul>
</li>
<li>
<p align="left"><a href="http://msdn2.microsoft.com/en-us/library/cc288325(VS.85).aspx">Document Compatability Mode</a></p>
</li>
<li>
<p align="left"><a href="http://msdn2.microsoft.com/en-us/library/cc197062(VS.85).aspx">DOM Storage</a>Â - aka <a href="http://www.whatwg.org/specs/web-apps/current-work/#storage">Client-side session and persistent storage</a></p>
</li>
<li>
<p align="left">Protected Mode Cookies</p>
</li>
<li>
<p align="left"><a href="http://msdn2.microsoft.com/en-us/library/cc288326(VS.85).aspx">SelectorsÂ API</a></p>
</li>
<li>
<p align="left">Tab Isolation &amp; Concurrency &#8211; Improves performance/reliability of IE 8. So if a page in one tab hangs, the others are still usable.</p>
</li>
</ul>
<p align="left">Oh, and <a href="http://code.msdn.microsoft.com/ie8whitepapers">IE8 Whitepapers</a>.</p>
<p align="left">And finally, for those who want to try IE8 with no risks, you can download a Virtual PC image with IE8 from <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=21EABB90-958F-4B64-B5F1-73D0A413C8EF&amp;displaylang=en">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://will.id.au/blog/archive/2008/03/06/internet-explorer-8-beta-1-changes-for-devs/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Aptana &#8211; A JavaScript IDE</title>
		<link>http://will.id.au/blog/archive/2006/07/31/aptana-a-javascript-ide</link>
		<comments>http://will.id.au/blog/archive/2006/07/31/aptana-a-javascript-ide#comments</comments>
		<pubDate>Mon, 31 Jul 2006 00:08:48 +0000</pubDate>
		<dc:creator>will</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://will.id.au/blog/archive/2006/07/31/aptana-a-javascript-ide</guid>
		<description><![CDATA[Looks like there&#8217;s a new JavaScript IDE in town. It goes by the name Aptana. It actually looks quite interesting from the screenshots, haven&#8217;t tried it yet. Currently downloading it to give it a go. It&#8217;s open source, and it&#8217;s free. If you use Eclipse, they have a plugin available for that. I like that [...]]]></description>
			<content:encoded><![CDATA[<p>Looks like there&#8217;s a new JavaScript IDE in town.</p>
<p>It goes by the name <a href="http://www.aptana.com/">Aptana</a>.</p>
<p>It actually looks quite interesting from the screenshots, haven&#8217;t tried it yet. Currently downloading it to give it a go. It&#8217;s open source, and it&#8217;s free.</p>
<p>If you use Eclipse, they have a plugin available for that.</p>
<p>I like that it shows you the compatability of JavaScript functions/properties/etc with various browsers, as seen in <a href="http://www.aptana.com/images/screenshot_browser_support.png">this screenshot</a> of their code-complete (er, &#8220;code assist&#8221;) feature.</p>
<p>And checkout their <a href="http://www.aptana.com/blog/">blog</a>. </p>
<p>Found them via the <a href="http://ajaxian.com/archives/aptana-new-web-ide-in-beta">Ajaxian</a> blog.</p>
]]></content:encoded>
			<wfw:commentRss>http://will.id.au/blog/archive/2006/07/31/aptana-a-javascript-ide/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IE7 &#8220;improvement&#8221; turns into a bug for us</title>
		<link>http://will.id.au/blog/archive/2006/05/23/ie7-improvement-turns-into-a-bug-for-us</link>
		<comments>http://will.id.au/blog/archive/2006/05/23/ie7-improvement-turns-into-a-bug-for-us#comments</comments>
		<pubDate>Tue, 23 May 2006 02:35:43 +0000</pubDate>
		<dc:creator>will</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://will.id.au/blog/archive/2006/05/23/ie7-improvement-turns-into-a-bug-for-us</guid>
		<description><![CDATA[This is an interesting one that I just came across today. One of our users has downloaded the latest IE7 Beta release and has found that one of the features that she relies on no longer behaves the same way. I got her to try to use that feature on another PC (which has IE6), [...]]]></description>
			<content:encoded><![CDATA[<p>This is an interesting one that I just came across today.</p>
<p>One of our users has downloaded the latest IE7 Beta release and has found that one of the features that she relies on no longer behaves the same way.</p>
<p>I got her to try to use that feature on another PC (which has IE6), and it worked. </p>
<p>The bug?</p>
<p>Our web app depends on the File upload Html Control, and it&#8217;s ability to grab the user selected file and directory. It then creates a link to that file (which is usually on a mapped network drive). Users can then click on the document link in their browser, and the document is opened in-browser.</p>
<p>It does seem a little bit of an overkill though to use the File upload control to simply create a link to a document.<br />
But it worked fine at the time.</p>
<p>Here&#8217;s some C# code to illustrate what we had:</p>
<p><code><br />
if (FileUplaoder.PostedFile.FileName != string.empty)<br />
{<br />
  string fileName = FileUploader.PostedFile.FileName;<br />
  //...<br />
}<br />
</code></p>
<p>In IE6, the fileName string would be something like: c:\docs\doc1.doc<br />
Ie IE7 though, the fileName string would be: doc1.doc</p>
<p><a href="http://www.ericlawrence.com">Eric Lawrence</a>, of the Internet Explorer team <a href="http://blogs.msdn.com/ie/archive/2006/04/24/582542.aspx#588998">posted a response to this question on the IEBlog</a> saying that it was a &#8220;by-design change for privacy reasons.  IE7&#8242;s behavior matches that of other browsers&#8221;.</p>
<p>I&#8217;ll need to come up with a new solution to this problem. Although only 2 users of the system are using IE7, it&#8217;s better to come up with a solution to this problem than let it sit until everyone is about to upgrade to IE7.</p>
]]></content:encoded>
			<wfw:commentRss>http://will.id.au/blog/archive/2006/05/23/ie7-improvement-turns-into-a-bug-for-us/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>A first look at Atlas on MSDN TV</title>
		<link>http://will.id.au/blog/archive/2006/01/20/a-first-look-at-atlas-on-msdn-tv</link>
		<comments>http://will.id.au/blog/archive/2006/01/20/a-first-look-at-atlas-on-msdn-tv#comments</comments>
		<pubDate>Fri, 20 Jan 2006 02:24:06 +0000</pubDate>
		<dc:creator>will</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Atlas]]></category>

		<guid isPermaLink="false">http://will.id.au/blog/archive/2006/01/20/a-first-look-at-atlas-on-msdn-tv</guid>
		<description><![CDATA[Just noticed that there&#8217;s a download available from MSDN TV titled ASP.NET &#8220;Atlas&#8221; First Look. You can watch it streaming here, or download it for offline viewing here.]]></description>
			<content:encoded><![CDATA[<p>Just noticed that there&#8217;s a download available from MSDN TV titled <a href="http://www.microsoft.com/downloads/details.aspx?familyid=5cc5ce52-45b7-4c64-992c-4f0fbc8c8221&#038;displaylang=en">ASP.NET &#8220;Atlas&#8221; First Look</a>.</p>
<p>You can watch it streaming <a href="http://msdn.microsoft.com/msdntv/episode.aspx?xml=episodes/en/20060119AtlasNK/manifest.xml">here</a>, or download it for offline viewing <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=5CC5CE52-45B7-4C64-992C-4F0FBC8C8221&#038;displaylang=en">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://will.id.au/blog/archive/2006/01/20/a-first-look-at-atlas-on-msdn-tv/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ad hoc SQL Query builder</title>
		<link>http://will.id.au/blog/archive/2005/10/26/ad-hoc-sql-query-builder</link>
		<comments>http://will.id.au/blog/archive/2005/10/26/ad-hoc-sql-query-builder#comments</comments>
		<pubDate>Wed, 26 Oct 2005 01:49:33 +0000</pubDate>
		<dc:creator>will</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://will.id.au/blog/?p=314</guid>
		<description><![CDATA[Came across an interesting project on CodeProject by Mike Ellison called SqlWhereBuilder a few days ago. It basically allows users of your app to dynamically build their own SQL Queries without needing to fiddle with the actual SQL. You could potentially build some sort of simple reporting page using it. It uses JavaScript to keep [...]]]></description>
			<content:encoded><![CDATA[<p>Came across an interesting project on CodeProject by Mike Ellison called <a href="http://www.codeproject.com/aspnet/SqlWhereBuilder.asp">SqlWhereBuilder</a> a few days ago. It basically allows users of your app to dynamically build their own SQL Queries without needing to fiddle with the actual SQL.</p>
<p>You could potentially build some sort of simple reporting page using it. </p>
<p>It uses JavaScript to keep the UI quite responsive. Interesting&#8230;</p>
<p>[This post is a bookmark for future reference]</p>
]]></content:encoded>
			<wfw:commentRss>http://will.id.au/blog/archive/2005/10/26/ad-hoc-sql-query-builder/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Atlas Class Browser</title>
		<link>http://will.id.au/blog/archive/2005/10/23/atlas-class-browser</link>
		<comments>http://will.id.au/blog/archive/2005/10/23/atlas-class-browser#comments</comments>
		<pubDate>Sun, 23 Oct 2005 02:40:42 +0000</pubDate>
		<dc:creator>will</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Atlas]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://will.id.au/blog/archive/2005/10/23/atlas-class-browser</guid>
		<description><![CDATA[Wilco Bauwer has posted an Atlas Class Browser which will show the public properties/events/methods of each Atlas type. It includes the Web, Web.Net, Web.Data, Web.Services, Web.UI, Web.UI.Data namespaces. If you prefer, however to explore the actual Atlas JavaScript files, but prefer a more &#8220;spaced out&#8221; version, check out Ralph Sommerer&#8217;s post. He&#8217;s got some funky [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.wilcob.com">Wilco Bauwer</a> has posted an <a href="http://www.wilcob.com/AtlasClassBrowser/">Atlas Class Browser</a> which will show the public properties/events/methods of each Atlas type.</p>
<p>It includes the Web, Web.Net, Web.Data, Web.Services, Web.UI, Web.UI.Data namespaces.</p>
<p>If you prefer, however to explore the actual Atlas JavaScript files, but prefer a more &#8220;spaced out&#8221; version, check out <a href="http://blogs.msdn.com/sompost/archive/2005/10/01/476040.aspx">Ralph Sommerer&#8217;s post</a>. He&#8217;s got some funky &#8220;InScript Code Listing Enhancer&#8221; going on.</p>
<p>Looking at one of Ralph&#8217;s links (<a href="http://research.microsoft.com/users/som/blog/AtlasCore.htm">AtlasCore</a>), you can click on the InScript link to see another representation of the classes/global variables/functions for each JavaScript file.</p>
<p>This is all very handy as there is still very <em>little</em> documentation aside from the Hands on Labs, and the <a href="http://atlas.asp.net/quickstart/default.aspx">QuickStart documentation</a>. </p>
<p>I&#8217;d also recommend reading <a href="http://www.wilcob.com">Wilco&#8217;s blog posts</a> on Atlas.</p>
]]></content:encoded>
			<wfw:commentRss>http://will.id.au/blog/archive/2005/10/23/atlas-class-browser/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Morfik Ajax IDE</title>
		<link>http://will.id.au/blog/archive/2005/10/01/morfik-ajax-ide</link>
		<comments>http://will.id.au/blog/archive/2005/10/01/morfik-ajax-ide#comments</comments>
		<pubDate>Sat, 01 Oct 2005 09:20:39 +0000</pubDate>
		<dc:creator>will</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Australian Blogosphere]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://will.id.au/blog/archive/2005/10/01/morfik-ajax-ide</guid>
		<description><![CDATA[Saw Morfik mentioned in a recent blog entry at the Ajaxian.com blog, and have finally had a bit more of a look. First thing? Had a look at their About Morfik page. What did I see? Morfik is located in Hobart, Australia. Wow, innovation from that little island just south of Melbourne (And we share [...]]]></description>
			<content:encoded><![CDATA[<p>Saw <a href="http://www.morfik.com">Morfik</a> mentioned in a recent blog entry at the <a href="http://www.ajaxian.com">Ajaxian.com blog</a>, and have finally had a bit more of a look.</p>
<p>First thing? Had a look at their <a href="http://www.morfik.com/about_morfik.html">About Morfik</a> page. What did I see? </p>
<blockquote><p>Morfik is located in Hobart, Australia.</p></blockquote>
<p>Wow, innovation from that little island just south of Melbourne <img src='http://will.id.au/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
(And we share the same area code! Victorian numbers are +61 3, as is Tasmania)</p>
<p>Anyway, Morfik looks really interesting. The IDE seems to resemble Visual Studio .NET&#8217;s IDE. (Or at least it does to me! &#8230; To a certain extent)</p>
<p>They&#8217;ll be at the <a href="http://www.web2con.com">Web 2.0 conference</a> next week, with more details about this app of theirs (they are a sponsor).</p>
<p>Ok, now onto the interesting stuff about this IDE and their <a href="http://www.morfik.com/jst_description.html">JavaScript Synthesis Technology (JST)</a>&#8230;</p>
<p>From their page:</p>
<blockquote><p>Morfik offers ground-breaking Javascript Synthesis Technology (â€˜JSTâ€™) that allows developers to use a visual design environment and a high-level language of their choice to create applications comprised purely of HTML and Javascript. This revolutionary technology combined with its tight integration of the browser, a database and web server, uniquely offers developers the opportunity to create web applications that run on the desktop after being unplugged from the web. </p></blockquote>
<p>Now that&#8217;s really blurring the lines between a desktop app and a web app which &#8220;lives&#8221; inside of a browser. This &#8220;JST&#8221; it seems gives Morfik the ability to work with an online/offline mode, akin to what&#8217;s offered by a <a href="http://msdn.microsoft.com/smartclient">Smart Client</a>.</p>
<p>It says you can use an OO language of your choice to implement the business logic. There&#8217;s a bit more in this <a href="http://www.emergintex.com/blog/?p=101">blog post</a>. Which says the supported OO languages are: C++/C#/Java/Delphi.</p>
<p>This could be interesting. But i&#8217;ll reserve my judgement until I&#8217;ve seen it in action.</p>
]]></content:encoded>
			<wfw:commentRss>http://will.id.au/blog/archive/2005/10/01/morfik-ajax-ide/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>A few useful cheatsheets for web developers</title>
		<link>http://will.id.au/blog/archive/2005/09/26/a-few-useful-cheatsheets-for-web-developers</link>
		<comments>http://will.id.au/blog/archive/2005/09/26/a-few-useful-cheatsheets-for-web-developers#comments</comments>
		<pubDate>Mon, 26 Sep 2005 05:12:05 +0000</pubDate>
		<dc:creator>will</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://will.id.au/blog/archive/2005/09/26/a-few-useful-cheatsheets-for-web-developers</guid>
		<description><![CDATA[A little while ago, I blogged about a CSS cheat sheet made available at the ILoveJackDaniels.com website. I just noticed that the blogs&#8217; author (Dave Child) has a few more up. From: http://www.ilovejackdaniels.com/cheat-sheets/ - JavaScript Cheet Sheet - CSS - RGB Hex Colour Chart Looks handy. Though I always keep a local saved copy of [...]]]></description>
			<content:encoded><![CDATA[<p>A little while ago, I blogged about a <a href="http://will.id.au/blog/archive/2005/05/06/cascading-style-sheets-cheat-sheet">CSS cheat sheet</a> made available at the <a href="http://www.ilovejackdaniels.com">ILoveJackDaniels.com</a> website.</p>
<p>I just noticed that the blogs&#8217; author (Dave Child) has a few more up.</p>
<p>From: <a href="http://www.ilovejackdaniels.com/cheat-sheets/">http://www.ilovejackdaniels.com/cheat-sheets/</a></p>
<p>- <a href="http://www.ilovejackdaniels.com/javascript/javascript-cheat-sheet/">JavaScript Cheet Sheet</a><br />
- <a href="http://www.ilovejackdaniels.com/css/css-cheat-sheet/">CSS</a><br />
- <a href="http://www.ilovejackdaniels.com/resources/colour-chart/">RGB Hex Colour Chart</a></p>
<p>Looks handy. Though I always keep a local saved copy of <a href="http://www.pitt.edu/~nisg/cis/web/cgi/rgb.html">this page for the Color codes</a>. (There&#8217;s a lot more listed &#8220;named&#8221; colours on there compared with the cheat sheet). Note though that the colour chart cheet sheet only contains 216 web safe or non-dithering colours.</p>
<p>Cheat sheets are good for the times when you just want to check on little things that you&#8217;ve not used in awhile. One JavaScript area I&#8217;ve not really had a look at, which is a part of the cheet sheet, is <a href="http://www.regular-expressions.info/javascript.html">Regular Expressions</a>. I can imagine cases where this is handy. Such as a dynamically filtered javascript table, whereby the user just types and as they type, the table gets filtered. There&#8217;s obviously other situations where this could be handy as well. Especially given the recent popularity of Ajax.</p>
<p>I&#8217;ve installed teh IE Developer Toolbar, but thus far, I don&#8217;t see any additional benefits of it on top of what I was using previously that the bar does. I&#8217;m using the <a href="http://www.nils.org.au/ais/web/resources/toolbar/index.html" title="Accessible Internet Solutions">AIS Web Accessibility Toolbar</a> (which I&#8217;ve found to be quite handy), and I also use their <a href="http://www.nils.org.au/ais/web/resources/contrast_analyser/index.html">Colour Constrast Analyser</a> which is quite good for helping me decide on what colours to use. One of our internal users finds it hard to distinguish between various shades of reds and greens (colour blindness) so this colour contrast analyser helps with that.</p>
<p>I also make use of the <a href="http://www.mioplanet.com/products/pixelruler/">Mio PixelRuler</a> as a screen ruler. I find it quite useful. I know the IE toolbar has one, but I also need the screen ruler outside of IE. </p>
]]></content:encoded>
			<wfw:commentRss>http://will.id.au/blog/archive/2005/09/26/a-few-useful-cheatsheets-for-web-developers/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Atlas Demo</title>
		<link>http://will.id.au/blog/archive/2005/09/25/atlas-demo</link>
		<comments>http://will.id.au/blog/archive/2005/09/25/atlas-demo#comments</comments>
		<pubDate>Sat, 24 Sep 2005 14:30:35 +0000</pubDate>
		<dc:creator>will</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Atlas]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://will.id.au/blog/?p=300</guid>
		<description><![CDATA[On Wednesday night I did a demo of Atlas. I was going to do a little demo on the Virtual Earth Atlas Server Control. In hindsight, doing a demo that depended on &#8220;external resources&#8221; was probably not the best idea. But it was working fine just moments before the presentation, and I hadn&#8217;t noticed the [...]]]></description>
			<content:encoded><![CDATA[<p>On <a href="http://will.id.au/blog/archive/2005/09/21/ajax-at-vdnug">Wednesday night I did a demo of Atlas</a>. I was going to do a little demo on the Virtual Earth Atlas Server Control. In hindsight, doing a demo that depended on &#8220;external resources&#8221; was probably not the best idea. But it was working fine just moments before the presentation, and I hadn&#8217;t noticed the delays. And I also never noticed any delays during my practice runs days before the presentation.</p>
<p>I need to learn to be more patient during my presentations because I just ran the exact same demo on my PC at home.</p>
<p>And it took some time to load (over wifi).</p>
<p>It showed the same blank map canvas as it did during the demo, but for a brief moment or two. Perhaps the maps would have shown up if I had waited longer that night, rather than declaring straight away that the net connection was playing up? Possibly. Well, it&#8217;s all done and dusted now. Admittedly, I should have prepared for a worse case scenario rather than on the fly decide to go look for something I did several days ago (the hands on labs). But some of these things you learn through the experience of doing a presentation.</p>
<p>I had prepared several longitude and latitude locations to show a demo of the power of Atlas. How easy it was to use.</p>
<p>Below is the actual demo for those interested&#8230;</p>
<p>Here&#8217;s the code for the Virtual Earth part:</p>
<p><code>&lt;atlas:VirtualEarthMap ID="VirtualEarthMap1" runat="server" Latitude="-37.83"<br />
                Longitude="144.98" MapStyle="Aerial" ZoomLevel="10" PushpinActivation="Hover"&gt;<br />
            &lt;/atlas:VirtualEarthMap&gt;</code></p>
<p>The Lat/Long figures above are for South Yarra (37.83South/144.98East), which is where the presentation was held.</p>
<p>I had a few other Lat/Long figures prepared for the next part of that demo that didn&#8217;t go ahead.</p>
<p>The next step would have been to put two Atlas TextBox controls and one Atlas Button control onto the canvas above the Map.</p>
<p>So we end up adding:</p>
<p><code>&lt;span&gt;Latitude&lt;/span&gt;<br />
&lt;input type="text" id="txtLat" /&gt;<br />
&lt;span&gt;Longitude&lt;/span&gt;<br />
&lt;input type="text" id="txtLong" /&gt;<br />
&lt;input type="button" id="btnChangeMapLocation" value="Change Map Location" onclick="Change_Location();" /&gt;code></p>
<p>I've also decided to change the map style to Hybrid so we can actually see the place names of the various locations we goto.</p>
<p>Note the onclick event is calling a Change_Location() javascript function.</p>
<p>Let's code that now:</p>
<p></code><code>function Change_Location()<br />
{<br />
  var latitude = document.getElementById("txtLat").value;<br />
  var longitude = document.getElementById("txtLong").value;</p>
<p>  var veMapCtrl = document.getElementById("VirtualEarthMap1");<br />
  veMapCtrl.control.set_latitude(latitude);<br />
  veMapCtrl.control.set_longitude(longitude);<br />
}</code></p>
<p>The first two lines are pretty simple, just getting the values entered by the user in the Latitude and Longitude text boxes.</p>
<p>I&#8217;ve not actually seen the last two lines documented anywhere,  but after doing some &#8220;research&#8221; (digging into the AtlasUIMap.js file from the Atlas Script Library), they set the latitude and longitude values for the Virtual Earth map.</p>
<p>One thing to keep in mind, the &#8220;.control&#8221; means you&#8217;re accessing one of these Atlas controls. </p>
<p>Here&#8217;s a few Lat/Long locations I had prepared for the presentation (<a href="http://www.mapsofworld.com/lat_long/index.html">More Latitude/Longitude values</a>):</p>
<table>
<tr>
<td>City</td>
<td>Latitude</td>
<td>Longitude</td>
</tr>
<tr>
<td>Melbourne </td>
<td>(-)37.50S</td>
<td>145.0E </td>
</tr>
<tr>
<td>South Yarra</td>
<td>(-)37.83S</td>
<td>144.98E</td>
</tr>
<tr>
<td>Redmond</td>
<td>47.41N</td>
<td>(-)122.07W</td>
</tr>
<tr>
<td>Paris</td>
<td>48.50N</td>
<td>2.20E</td>
</tr>
<tr>
<td>Luang Prabang</td>
<td>19.52N</td>
<td>102.10E </td>
</tr>
<tr>
<td>New Orleans</td>
<td>29.58N</td>
<td>(-)90.04W</td>
</tr>
</table>
<p>There&#8217;s a lot more that can be done to show what is possible with Atlas, but this is all I had prepared for the presentation because of time constraints.</p>
<p><span id="more-300"></span><br />
Full Source code for this demo:</p>
<p><code>&lt;%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %&gt;</p>
<p>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"&gt;<br />
&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;<br />
&lt;head runat="server"&gt;<br />
    &lt;title&gt;Untitled Page&lt;/title&gt;<br />
    &lt;atlas:Script ID="Script1" runat="server" Path="~/ScriptLibrary/AtlasCompat.js" Browser="Mozilla" /&gt;<br />
    &lt;atlas:Script ID="Script2" runat="server" Path="~/ScriptLibrary/AtlasCompat.js" Browser="Firefox" /&gt;<br />
    &lt;atlas:Script ID="Script3" runat="server" Path="~/ScriptLibrary/AtlasCompat.js" Browser="AppleMAC-Safari" /&gt;<br />
    &lt;atlas:Script ID="Script4" runat="server" Path="~/ScriptLibrary/AtlasCore.js" /&gt;<br />
    &lt;atlas:Script ID="Script5" runat="server" Path="~/ScriptLibrary/AtlasCompat2.js" Browser="AppleMAC-Safari" /&gt;</p>
<p>    &lt;script type="text/javascript" language="javascript"&gt;<br />
        function Change_Location()<br />
        {<br />
            var latitude = document.getElementById("txtLat").value;<br />
            var longitude = document.getElementById("txtLong").value;</p>
<p>            var veMapCtrl = document.getElementById("VirtualEarthMap1");<br />
            veMapCtrl.control.set_latitude(latitude);<br />
            veMapCtrl.control.set_longitude(longitude);<br />
        }<br />
    &lt;/script&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;<br />
    &lt;form id="form1" runat="server"&gt;<br />
        &lt;div&gt;<br />
            &lt;atlas:ScriptManager ID="ScriptManager1" runat="server"&gt;&lt;/atlas:ScriptManager&gt;<br />
            &lt;span&gt;Latitude&lt;/span&gt;<br />
            &lt;input type="text" id="txtLat" /&gt;<br />
            &lt;span&gt;Longitude&lt;/span&gt;<br />
            &lt;input type="text" id="txtLong" /&gt;<br />
            &lt;input type="button" id="btnChangeMapLocation" value="Change Map Location" onclick="Change_Location();" /&gt;<br />
            &lt;atlas:VirtualEarthMap ID="VirtualEarthMap1" runat="server" Latitude="-37.83"<br />
                Longitude="144.98" MapStyle="Hybrid" ZoomLevel="10" PushpinActivation="Hover"&gt;<br />
            &lt;/atlas:VirtualEarthMap&gt;<br />
        &lt;/div&gt;<br />
    &lt;/form&gt;</p>
<p>    &lt;script type="text/xml-script"&gt;<br />
        &lt;page xmlns:script="http://schemas.microsoft.com/xml-script/2005"&gt;<br />
            &lt;references&gt;<br />
                &lt;!-- Repath the following src attributes, using regular client relative paths as necessary --&gt;<br />
                &lt;add src="ScriptLibrary/AtlasUI.js" /&gt;<br />
                &lt;add src="ScriptLibrary/AtlasControls.js" /&gt;<br />
            &lt;/references&gt;<br />
            &lt;components&gt;<br />
            &lt;/components&gt;<br />
        &lt;/page&gt;<br />
    &lt;/script&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;<br />
</code></p>
<p><a href="http://will.id.au/vdnug/AtlasDemo.zip">Download full source</a>.</p>
<p><img src="http://will.id.au/blog/images/southyarraVE.png" alt="Atlas Demo - South Yarra/Melbourne - Virtual Earth" /><br />
Fig 1: Default Virtual Earth map, with location set to South Yarra, Melbourne.<br />
<br />
<img src="http://will.id.au/blog/images/luangphrabangVE.png" alt="Atlas Demo - Luangphrabang - Laos - Virtual Earth" /><br />
Fig 2: Changed Virtual Earth map, with location set to Luangphrabang, Laos.</p>
]]></content:encoded>
			<wfw:commentRss>http://will.id.au/blog/archive/2005/09/25/atlas-demo/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

