<?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>Web Dev Bros &#187; classic ASP (VBScript)</title>
	<atom:link href="http://www.webdevbros.net/category/classic-asp/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.webdevbros.net</link>
	<description>hot talk about web development</description>
	<lastBuildDate>Wed, 16 Dec 2009 12:59:24 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Recommendation for classic ASP fans/gurus</title>
		<link>http://www.webdevbros.net/2009/06/20/recommendation-for-classic-asp-fansgurus/</link>
		<comments>http://www.webdevbros.net/2009/06/20/recommendation-for-classic-asp-fansgurus/#comments</comments>
		<pubDate>Sat, 20 Jun 2009 19:14:43 +0000</pubDate>
		<dc:creator>Michal</dc:creator>
				<category><![CDATA[classic ASP (VBScript)]]></category>

		<guid isPermaLink="false">http://www.webdevbros.net/?p=285</guid>
		<description><![CDATA[Today I&#8217;ve found a nice site where someone called Fabio Zendhi Nagao is blogging a lot about classic asp. Nice to see it&#8217;s not only me who is still dealing with that technology :)
Just recently he has started an interesting series of advanced articles talking about Microsofts legacy scripting technology:
   1. ASP, a [...]]]></description>
			<content:encoded><![CDATA[<p>Today I&#8217;ve found a nice site where someone called <a href="http://zend.lojcomm.com.br/">Fabio Zendhi Nagao</a> is blogging a lot about classic asp. Nice to see it&#8217;s not only me who is still dealing with that technology :)</p>
<p>Just recently he has started an interesting series of advanced articles talking about Microsofts legacy scripting technology:</p>
<p>   1. <a href="http://zend.lojcomm.com.br/entries/asp-a-misinterpreted-technology/">ASP, a misinterpreted technology</a><br />
   2. <a href="http://zend.lojcomm.com.br/entries/event-driven-programming-and-lambda-function-in-as/">Event-Driven-Programming and lambda function in ASP/VBScript</a>.<br />
   3. TDD (Test Driven Development) in ASP/VBScript.<br />
   4. Languages: Based on Objects and Object Oriented.<br />
   5. Object Oriented in ASP/VBScript &#8220;Hackers way&#8221;.<br />
   6. &#8220;Scripting Components&#8221;, the ace in the role.<br />
   7. Caching: the concept of DRY (Don&#8217;t Repeat Yourself) applied to ASP.</p>
<p>Enjoy! I will definitely follow it&#8230;.</p>
<div><table> <td><iframe src='http://digg.com/api/diggthis.php?w=new&amp;u=http://www.webdevbros.net/2009/06/20/recommendation-for-classic-asp-fansgurus/&amp;t=Recommendation+for+classic+ASP+fans%2Fgurus&amp;s=normal' height='80' width='52' frameborder='0' scrolling='no'></iframe></td> <td><iframe src='http://www.reddit.com/button_content?newwindow=1&amp;url=http://www.webdevbros.net/2009/06/20/recommendation-for-classic-asp-fansgurus/&amp;title=Recommendation+for+classic+ASP+fans%2Fgurus&amp;t=2 ' height='80' width='52' scrolling='no' frameborder='0' ></iframe></td> <td><iframe src='http://widgets.dzone.com/links/widgets/zoneit.html?url=http://www.webdevbros.net/2009/06/20/recommendation-for-classic-asp-fansgurus/&amp;title=Recommendation+for+classic+ASP+fans%2Fgurus&amp;t=1 ' height='80' width='52' scrolling='no' frameborder='0' ></iframe></td> <td><script type="text/javascript"><!--yahooBuzzArticleHeadline=Recommendation+for+classic+ASP+fans%2Fgurus;//--></script><script type="text/javascript" src="http://d.yimg.com/ds/badge2.js" badgetype=square></script></td> <td><script type="text/javascript">tweetmeme_url='http://www.webdevbros.net/2009/06/20/recommendation-for-classic-asp-fansgurus/'; tweetmeme_style = 'normal';; </script><script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js" ></script></td></table></div><!-- This is a HTML comment, it will not display in any page. Feel free to remove this comment if it cause any inconvenient to you.
	Thanks for using digg digg, please visit http://www.mkyong.com/blog/digg-digg-wordpress-plugin for any comments and ideas, 
	
    Author : Yong Mook Kim
    Website : http://www.mkyong.com
	-->]]></content:encoded>
			<wfw:commentRss>http://www.webdevbros.net/2009/06/20/recommendation-for-classic-asp-fansgurus/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>ajaxed 2.0 released</title>
		<link>http://www.webdevbros.net/2008/11/25/ajaxed-20-released/</link>
		<comments>http://www.webdevbros.net/2008/11/25/ajaxed-20-released/#comments</comments>
		<pubDate>Tue, 25 Nov 2008 10:53:54 +0000</pubDate>
		<dc:creator>Michal</dc:creator>
				<category><![CDATA[ajaxed]]></category>

		<guid isPermaLink="false">http://www.webdevbros.net/?p=214</guid>
		<description><![CDATA[It&#8217;s been some time since the last version has been released. But today it&#8217;s here! Fresh and with loads of updates comes the brand new ajaxed version 2.0. Coupled with it we proud to announce the new official ajaxed website &#8211; ajaxed.org. 

The community is growing and ajaxed already helps a lot developers to keep [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been some time since the last version has been released. But today it&#8217;s here! Fresh and with loads of updates comes the brand new ajaxed version 2.0. Coupled with it we proud to announce the new official ajaxed website &#8211; <a href="http://www.ajaxed.org">ajaxed.org</a>. </p>
<p><a href='http://www.ajaxed.org'><img src="http://www.webdevbros.net/wp-content/uploads/2008/11/ajaxedorg.jpg" alt="official ajaxed.org website" title="official ajaxed.org website" width="394" height="256" class="aligncenter size-full wp-image-215" /></a></p>
<p>The community is growing and ajaxed already helps a lot developers to keep their legacy ASP application still up to date. Some highlight of the release:</p>
<p><strong><a href="http://www.ajaxed.org/article/Finally-Version-20-is-here-Overview-about-the-Highlights/19/">Read about the highlight of version 2.0</a></strong></p>
<p>One cool thing on the new website is the publicly available <a href="http://www.ajaxed.org/source/">source code of ajaxed.org</a>. Thats a great resource to have a look into real world ajaxed development. </p>
<div><table> <td><iframe src='http://digg.com/api/diggthis.php?w=new&amp;u=http://www.webdevbros.net/2008/11/25/ajaxed-20-released/&amp;t=ajaxed+2.0+released&amp;s=normal' height='80' width='52' frameborder='0' scrolling='no'></iframe></td> <td><iframe src='http://www.reddit.com/button_content?newwindow=1&amp;url=http://www.webdevbros.net/2008/11/25/ajaxed-20-released/&amp;title=ajaxed+2.0+released&amp;t=2 ' height='80' width='52' scrolling='no' frameborder='0' ></iframe></td> <td><iframe src='http://widgets.dzone.com/links/widgets/zoneit.html?url=http://www.webdevbros.net/2008/11/25/ajaxed-20-released/&amp;title=ajaxed+2.0+released&amp;t=1 ' height='80' width='52' scrolling='no' frameborder='0' ></iframe></td> <td><script type="text/javascript"><!--yahooBuzzArticleHeadline=ajaxed+2.0+released;//--></script><script type="text/javascript" src="http://d.yimg.com/ds/badge2.js" badgetype=square></script></td> <td><script type="text/javascript">tweetmeme_url='http://www.webdevbros.net/2008/11/25/ajaxed-20-released/'; tweetmeme_style = 'normal';; </script><script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js" ></script></td></table></div><!-- This is a HTML comment, it will not display in any page. Feel free to remove this comment if it cause any inconvenient to you.
	Thanks for using digg digg, please visit http://www.mkyong.com/blog/digg-digg-wordpress-plugin for any comments and ideas, 
	
    Author : Yong Mook Kim
    Website : http://www.mkyong.com
	-->]]></content:encoded>
			<wfw:commentRss>http://www.webdevbros.net/2008/11/25/ajaxed-20-released/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Launched with ajaxed: Tourmandu &#8211; Platform for local tour guides</title>
		<link>http://www.webdevbros.net/2008/10/31/launched-with-ajaxed-tourmandu-platform-for-local-tour-guides/</link>
		<comments>http://www.webdevbros.net/2008/10/31/launched-with-ajaxed-tourmandu-platform-for-local-tour-guides/#comments</comments>
		<pubDate>Fri, 31 Oct 2008 08:05:06 +0000</pubDate>
		<dc:creator>Michal</dc:creator>
				<category><![CDATA[ASP (VBScript)]]></category>
		<category><![CDATA[ajaxed]]></category>
		<category><![CDATA[communities]]></category>
		<category><![CDATA[web 2.0]]></category>

		<guid isPermaLink="false">http://www.webdevbros.net/2008/10/31/launched-with-ajaxed-tourmandu-platform-for-local-tour-guides/</guid>
		<description><![CDATA[I proudly announce the launch of a new project developed with ajaxed &#8211; yes with classic asp :). It&#8217;s a platform for everyone who wants to show tourists/visitors around in his/her hometown and earn some pocket money. Let&#8217;s face this:

You are a student and love to get in touch with people from around the globe. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.tourmandu.com"><img height="38" alt="tourmandu.com" src="http://www.webdevbros.net/wp-content/uploads/2008/10/logo.png" width="200" align="left" /></a>I proudly announce the launch of a new project developed with <a href="http://www.webdevbros.net/ajaxed/">ajaxed</a> &#8211; yes with classic asp :). It&#8217;s a platform for everyone who wants to show tourists/visitors around in his/her hometown and earn some pocket money. Let&#8217;s face this:</p>
<blockquote>
<p>You are a student and love to get in touch with people from around the globe. On Tourmandu you can offer a tour in your hometown and tourists can get in touch with you. You show them &#8217;round and they pay/tip you afterwards. Not a bad idea :) Great part time income &#8230;</p>
</blockquote>
<p>As the project has been recently launched its a bit empty, but have a look at some existing tour to get an idea of what i am talking about..</p>
<ul dir="ltr">
<li>
<div><a title="Locals in australia" href="http://www.tourmandu.com/local-tours/Australia/">Tours in Australia</a></div>
</li>
<li>
<div><a title="locals in paris" href="http://www.tourmandu.com/local-tours/Paris/">Tours is Paris, France</a></div>
</li>
<li>
<div><a href="http://www.tourmandu.com/local-tours/Spain/159/">Tours in Spain</a></div>
</li>
<li>
<div><a href="http://www.tourmandu.com/local-tours/Usa/27/">Tours in the USA</a></div>
</li>
<li>
<div><a href="http://www.tourmandu.com/local-tour-guides/City/Famous-sightseeing-spots/">Guides for Famous sightseeing spots</a></div>
</li>
</ul>
<div><table> <td><iframe src='http://digg.com/api/diggthis.php?w=new&amp;u=http://www.webdevbros.net/2008/10/31/launched-with-ajaxed-tourmandu-platform-for-local-tour-guides/&amp;t=Launched+with+ajaxed%3A+Tourmandu+-+Platform+for+local+tour+guides&amp;s=normal' height='80' width='52' frameborder='0' scrolling='no'></iframe></td> <td><iframe src='http://www.reddit.com/button_content?newwindow=1&amp;url=http://www.webdevbros.net/2008/10/31/launched-with-ajaxed-tourmandu-platform-for-local-tour-guides/&amp;title=Launched+with+ajaxed%3A+Tourmandu+-+Platform+for+local+tour+guides&amp;t=2 ' height='80' width='52' scrolling='no' frameborder='0' ></iframe></td> <td><iframe src='http://widgets.dzone.com/links/widgets/zoneit.html?url=http://www.webdevbros.net/2008/10/31/launched-with-ajaxed-tourmandu-platform-for-local-tour-guides/&amp;title=Launched+with+ajaxed%3A+Tourmandu+-+Platform+for+local+tour+guides&amp;t=1 ' height='80' width='52' scrolling='no' frameborder='0' ></iframe></td> <td><script type="text/javascript"><!--yahooBuzzArticleHeadline=Launched+with+ajaxed%3A+Tourmandu+-+Platform+for+local+tour+guides;//--></script><script type="text/javascript" src="http://d.yimg.com/ds/badge2.js" badgetype=square></script></td> <td><script type="text/javascript">tweetmeme_url='http://www.webdevbros.net/2008/10/31/launched-with-ajaxed-tourmandu-platform-for-local-tour-guides/'; tweetmeme_style = 'normal';; </script><script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js" ></script></td></table></div><!-- This is a HTML comment, it will not display in any page. Feel free to remove this comment if it cause any inconvenient to you.
	Thanks for using digg digg, please visit http://www.mkyong.com/blog/digg-digg-wordpress-plugin for any comments and ideas, 
	
    Author : Yong Mook Kim
    Website : http://www.mkyong.com
	-->]]></content:encoded>
			<wfw:commentRss>http://www.webdevbros.net/2008/10/31/launched-with-ajaxed-tourmandu-platform-for-local-tour-guides/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Cool way of creating arrays in ASP (VBScript) &#8211; advanced</title>
		<link>http://www.webdevbros.net/2008/08/08/cool-way-of-creating-arrays-in-asp-vbscript-advanced/</link>
		<comments>http://www.webdevbros.net/2008/08/08/cool-way-of-creating-arrays-in-asp-vbscript-advanced/#comments</comments>
		<pubDate>Fri, 08 Aug 2008 10:13:59 +0000</pubDate>
		<dc:creator>Michal</dc:creator>
				<category><![CDATA[ajaxed]]></category>
		<category><![CDATA[classic ASP (VBScript)]]></category>
		<category><![CDATA[array]]></category>
		<category><![CDATA[asp]]></category>
		<category><![CDATA[vbscript]]></category>

		<guid isPermaLink="false">http://www.webdevbros.net/2008/08/08/cool-way-of-creating-arrays-in-asp-vbscript-advanced/</guid>
		<description><![CDATA[It&#8217;s a small function which I will introduce today but very useful. When working recently on ajaxed i discovered that its often possible to pass an array or a primitive type as an argument to a function. Lets say you have a function println(msg) which prints out its argument as a line to the screen. [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s a small function which I will introduce today but very useful. When working recently on <a href="http://www.webdevbros.net/ajaxed/">ajaxed</a> i discovered that its often possible to pass an array or a primitive type as an argument to a function. Lets say you have a function <code>println(msg)</code> which prints out its argument as a line to the screen. When the argument is an array then it treats each field as a line. So it should be possible to call the function with those variations:</p>
<pre>
<code>println("something")
println(array("some", "more", "lines"))</code>
</pre>
<p>Lets see how we solve the solution in a nice way and how we will be able to create a function which is simply called <strong>[]</strong> (which is common syntax for an array in other languages).</p>
<p> <span id="more-208"></span>
<p>First we create the <code>println</code> function which prints out the line(s):</p>
<pre>
<code>sub println(line)
  lines = arrayize(line)
  for each l in lines
    response.write(l)
  next
end sub</code>
</pre>
<p>As you can see we use an <code>arrayize</code> function internally which will ensure a variable to be an array. This little function does the job and helps us to keep our code nice and simple:</p>
<pre>
function arrayize(value)
  if isArray(value) then
    arrayize = value
  elseif isEmpty(value) then
    arrayize = array()
  else
    arrayize = array(value)
  end if
end function
</pre>
<p>Its straightforward but very effective. This function ensures a variable to be an array. If its already an array then its just passed trhough, otherwise the value is take as the first field of the array. In case of an <code>empty</code> variable it returns an empty array.</p>
<p>Thats it! But we go a step further and create an alias for it which will make the usage even more simpler. Lets check this:</p>
<pre>
function [](value)
  [] = arrayize(value)
end function
</pre>
<p>Exactly, we use the squared brackets (which are normally used to escape reserved words). Back to our first function it looks like this now:</p>
<pre>
sub println(line)
  for each l in [](line)
  response.write(l)
  next
end sub
</pre>
<p>I dont know about you guys, but i am very excited about this way. It makes my code much clearer now. Btw: This will be part of the version 2.0 of <a href="http://www.webdevbros.net/ajaxed/">ajaxed</a>.</p>
<p xmlns="" class="zoundry_raven_tags">  <!-- Tag links generated by Zoundry Raven. Do not manually edit. http://www.zoundryraven.com -->  <span class="ztags"><span class="ztagspace">Technorati</span> : <a href="http://www.technorati.com/tag/array" class="ztag" rel="tag">array</a>, <a href="http://www.technorati.com/tag/asp" class="ztag" rel="tag">asp</a>, <a href="http://www.technorati.com/tag/vbscript" class="ztag" rel="tag">vbscript</a></span>  <br/> <span class="ztags"><span class="ztagspace">Del.icio.us</span> : <a href="http://del.icio.us/tag/array" class="ztag" rel="tag">array</a>, <a href="http://del.icio.us/tag/asp" class="ztag" rel="tag">asp</a>, <a href="http://del.icio.us/tag/vbscript" class="ztag" rel="tag">vbscript</a></span> </p>
<div><table> <td><iframe src='http://digg.com/api/diggthis.php?w=new&amp;u=http://www.webdevbros.net/2008/08/08/cool-way-of-creating-arrays-in-asp-vbscript-advanced/&amp;t=Cool+way+of+creating+arrays+in+ASP+%28VBScript%29+-+advanced&amp;s=normal' height='80' width='52' frameborder='0' scrolling='no'></iframe></td> <td><iframe src='http://www.reddit.com/button_content?newwindow=1&amp;url=http://www.webdevbros.net/2008/08/08/cool-way-of-creating-arrays-in-asp-vbscript-advanced/&amp;title=Cool+way+of+creating+arrays+in+ASP+%28VBScript%29+-+advanced&amp;t=2 ' height='80' width='52' scrolling='no' frameborder='0' ></iframe></td> <td><iframe src='http://widgets.dzone.com/links/widgets/zoneit.html?url=http://www.webdevbros.net/2008/08/08/cool-way-of-creating-arrays-in-asp-vbscript-advanced/&amp;title=Cool+way+of+creating+arrays+in+ASP+%28VBScript%29+-+advanced&amp;t=1 ' height='80' width='52' scrolling='no' frameborder='0' ></iframe></td> <td><script type="text/javascript"><!--yahooBuzzArticleHeadline=Cool+way+of+creating+arrays+in+ASP+%28VBScript%29+-+advanced;//--></script><script type="text/javascript" src="http://d.yimg.com/ds/badge2.js" badgetype=square></script></td> <td><script type="text/javascript">tweetmeme_url='http://www.webdevbros.net/2008/08/08/cool-way-of-creating-arrays-in-asp-vbscript-advanced/'; tweetmeme_style = 'normal';; </script><script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js" ></script></td></table></div><!-- This is a HTML comment, it will not display in any page. Feel free to remove this comment if it cause any inconvenient to you.
	Thanks for using digg digg, please visit http://www.mkyong.com/blog/digg-digg-wordpress-plugin for any comments and ideas, 
	
    Author : Yong Mook Kim
    Website : http://www.mkyong.com
	-->]]></content:encoded>
			<wfw:commentRss>http://www.webdevbros.net/2008/08/08/cool-way-of-creating-arrays-in-asp-vbscript-advanced/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ajaxed gets a face</title>
		<link>http://www.webdevbros.net/2008/07/25/ajaxed-gets-a-face/</link>
		<comments>http://www.webdevbros.net/2008/07/25/ajaxed-gets-a-face/#comments</comments>
		<pubDate>Fri, 25 Jul 2008 03:01:55 +0000</pubDate>
		<dc:creator>Michal</dc:creator>
				<category><![CDATA[ASP (VBScript)]]></category>
		<category><![CDATA[ajaxed]]></category>

		<guid isPermaLink="false">http://www.webdevbros.net/?p=193</guid>
		<description><![CDATA[I proudly present the new logo of our ajaxed library. Just achieve a bit of identity ;) What do you think? Do you like it or is it just another web 2.0 logo :) Btw: I have just purchased ajaxed.org which will be the new home for ajaxed. A lot of tutorials, better documentation and [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.webdevbros.net/wp-content/uploads/2008/07/ajaxed.gif" alt="" title="ajaxed" width="285" height="99" class="alignleft size-full wp-image-194" />I proudly present the new logo of our <a hreft="http://www.webdevbros.net/ajaxed/">ajaxed</a> library. Just achieve a bit of identity ;) What do you think? Do you like it or is it just another web 2.0 logo :) Btw: I have just purchased <a href="http://www.ajaxed.org">ajaxed.org</a> which will be the new home for ajaxed. A lot of tutorials, better documentation and version 2 is coming soon. Thanks again for all your support guys!</p>
<div><table> <td><iframe src='http://digg.com/api/diggthis.php?w=new&amp;u=http://www.webdevbros.net/2008/07/25/ajaxed-gets-a-face/&amp;t=ajaxed+gets+a+face&amp;s=normal' height='80' width='52' frameborder='0' scrolling='no'></iframe></td> <td><iframe src='http://www.reddit.com/button_content?newwindow=1&amp;url=http://www.webdevbros.net/2008/07/25/ajaxed-gets-a-face/&amp;title=ajaxed+gets+a+face&amp;t=2 ' height='80' width='52' scrolling='no' frameborder='0' ></iframe></td> <td><iframe src='http://widgets.dzone.com/links/widgets/zoneit.html?url=http://www.webdevbros.net/2008/07/25/ajaxed-gets-a-face/&amp;title=ajaxed+gets+a+face&amp;t=1 ' height='80' width='52' scrolling='no' frameborder='0' ></iframe></td> <td><script type="text/javascript"><!--yahooBuzzArticleHeadline=ajaxed+gets+a+face;//--></script><script type="text/javascript" src="http://d.yimg.com/ds/badge2.js" badgetype=square></script></td> <td><script type="text/javascript">tweetmeme_url='http://www.webdevbros.net/2008/07/25/ajaxed-gets-a-face/'; tweetmeme_style = 'normal';; </script><script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js" ></script></td></table></div><!-- This is a HTML comment, it will not display in any page. Feel free to remove this comment if it cause any inconvenient to you.
	Thanks for using digg digg, please visit http://www.mkyong.com/blog/digg-digg-wordpress-plugin for any comments and ideas, 
	
    Author : Yong Mook Kim
    Website : http://www.mkyong.com
	-->]]></content:encoded>
			<wfw:commentRss>http://www.webdevbros.net/2008/07/25/ajaxed-gets-a-face/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>ASP JSON utility version 1.5 released</title>
		<link>http://www.webdevbros.net/2008/07/10/asp-json-utility-version-15-released/</link>
		<comments>http://www.webdevbros.net/2008/07/10/asp-json-utility-version-15-released/#comments</comments>
		<pubDate>Thu, 10 Jul 2008 14:17:40 +0000</pubDate>
		<dc:creator>Michal</dc:creator>
				<category><![CDATA[JSON]]></category>
		<category><![CDATA[classic ASP (VBScript)]]></category>

		<guid isPermaLink="false">http://www.webdevbros.net/?p=183</guid>
		<description><![CDATA[Its long time ago since there has been an update to the JSON utility class. Thats because its working very stable thanks to your support! Nevertheless we have a new version with new features and some minor bugfixes. The following has been updated:
0. Bugfixes

When a dictionary contained no items then nothing was returned ("someDict":{}). According [...]]]></description>
			<content:encoded><![CDATA[<p>Its long time ago since there has been an update to the <a href="http://www.webdevbros.net/2007/04/26/generate-json-from-asp-datatypes/">JSON utility class</a>. Thats because its working very stable thanks to your support! Nevertheless we have a new version with new features and some minor bugfixes. The following has been updated:<span id="more-183"></span></p>
<p><strong>0. Bugfixes</strong></p>
<ul>
<li>When a dictionary contained no items then nothing was returned (<code>"someDict":{}</code>). According to the JSON RFC this is not correct and results in invalid JSON. It returns null now. <code>"someDict": null</code></li>
<li>The class supposed to fully support UTF-8 but it didnt 100%. e.g. chinese chars wouldnt work at all. This has been solved and works perfectly now!! Thanks to Jef Housein for his help and we welcome all asian asp developer now ;)</li>
</ul>
<p><strong>1. toJSON() method is default now</strong></p>
<p>This is a minor improvement but makes our client code much nicer. See the difference:</p>
<div class="igBar"><span id="lasp-5"><a href="#" onclick="javascript:showCodeTxt('asp-5'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">ASP:</span>
<div id="asp-5">
<div class="asp">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#008000;">'before</span></div>
</li>
<li style="font-weight: bold;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">output = <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF; font-weight:bold;">new</span> JSON<span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color:#9900CC;">toJSON</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC0000;">"root"</span>, <span style="color:#CC0000;">"some value"</span>, <span style="color:#0000FF; font-weight:bold;">false</span><span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#008000;">'now additionally possible:</span></div>
</li>
<li style="font-weight: bold;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">output = <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF; font-weight:bold;">new</span> JSON<span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC0000;">"root"</span>, <span style="color:#CC0000;">"some value"</span>, <span style="color:#0000FF; font-weight:bold;">false</span><span style="color:#006600; font-weight:bold;">&#41;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p> </p>
<p><strong>2. supports ASP request object</strong></p>
<p>Thanks to <a href="http://www.cment.net">Jeremy Brown</a> who inspired me with his extension to support the ASP's <code>request</code> object. Therefore its possible now to represent the whole request object in JSON format. It includes <code>request.form, request.cookies, request.servervariables</code>, etc. (check its properties at <a href="http://www.w3schools.com/ASP/asp_ref_request.asp">w3schools</a>). Simple example of how to access the <code>HTTP_HOST</code> server variable within javascript:</p>
<div class="igBar"><span id="lasp-6"><a href="#" onclick="javascript:showCodeTxt('asp-6'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">ASP:</span>
<div id="asp-6">
<div class="asp">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&lt;script&gt;</div>
</li>
<li style="font-weight: bold;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; alert<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF; font-weight:bold;">&lt;%</span>= <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF; font-weight:bold;">new</span> JSON<span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#40;</span>empty, <span style="color:#990099; font-weight:bold;">request</span>, <span style="color:#0000FF; font-weight:bold;">false</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#0000FF; font-weight:bold;">%&gt;</span>.<span style="color:#330066;">servervariables</span>.<span style="color:#9900CC;">HTTP_HOST</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF; font-weight:bold;">&lt;/script&gt;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Yeah, new default method already in use :)<br />
Note: All properties of the request object are exposed in lowercase (such as <code>servervariables, form</code>, ...). Because of this extension the class also supports the <code>IStringList</code> and <code>IRequestDictionary</code> types now as well. Oh vtw, with this we can also easily access the users session from client side if neccesary:</p>
<div class="igBar"><span id="lasp-7"><a href="#" onclick="javascript:showCodeTxt('asp-7'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">ASP:</span>
<div id="asp-7">
<div class="asp">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">alert<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF; font-weight:bold;">&lt;%</span>= <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF; font-weight:bold;">new</span> JSON<span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#40;</span>empty, <span style="color:#990099; font-weight:bold;">request</span>, <span style="color:#0000FF; font-weight:bold;">false</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#0000FF; font-weight:bold;">%&gt;</span>.<span style="color:#990099; font-weight:bold;">session</span>.<span style="color:#9900CC;">some_session_var</span><span style="color:#006600; font-weight:bold;">&#41;</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p><strong>3. Using paged recordsets</strong></p>
<p>Till now all records of both dynamic &#038; staic recordsets have been returned. What if you are using a paged recordset (<code>recordset.pageSize</code> property)? its very likely that you only want those records of the current page. Thanks to <a href="javascript:alert('dont know his website :(')">Jef Housein</a> this is possible now, but its functionality has to be turned on with the new <code>recordsetPaging</code> property. By default this behaivour so it does not break existing apps ;) Using a paged recordset would work like this:</p>
<div class="igBar"><span id="lasp-8"><a href="#" onclick="javascript:showCodeTxt('asp-8'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">ASP:</span>
<div id="asp-8">
<div class="asp">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#990099; font-weight:bold;">set</span> j = <span style="color:#0000FF; font-weight:bold;">new</span> JSON</div>
</li>
<li style="font-weight: bold;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">j.<span style="color:#9900CC;">recordsetPaging</span> = <span style="color:#0000FF; font-weight:bold;">true</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#990099; font-weight:bold;">set</span> RS = <span style="color:#990099; font-weight:bold;">server</span>.<span style="color:#330066;">createObject</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC0000;">"ADODB.recordset"</span><span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">RS.<span style="color:#9900CC;">pageSize</span> = <span style="color:#800000;color:#800000;">5</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#008000;">'... and executing some command</span></div>
</li>
<li style="font-weight: bold;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">output = j<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC0000;">"root"</span>, RS, <span style="color:#0000FF; font-weight:bold;">false</span><span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#008000;">'output would always hold max. 5 records of RS now </span></div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p><strong>4. Updated documentation</strong></p>
<p>Documentation of the class has been heavily updated. Code examples have been added and most of the docs has been reviewed. <a href='http://www.webdevbros.net/wp-content/uploads/2008/07/jsondoc.html'>Click here to see the updated doc.</a></p>
<p><strong><a href='http://www.webdevbros.net/wp-content/uploads/2008/07/json151.zip'>Download JSON utility class 1.5.1</a></strong><br />
<a href='http://www.webdevbros.net/wp-content/uploads/2008/07/json15.zip'>Download JSON utility class 1.5</a><br />
(no changes needed when upgrading from 1.4)</p>
<p><strong>Update 15.07.2008:</strong> v1.5 contained a bug when generating empty dictionaries (see james comment). v1.5.1 has fixed this. Thanks James!</p>
<p>Thanks a lot for all who helped making this little tool what it is. Dont forget that it is a major component within the <a href="http://www.webdevbros.net/ajaxed">ajaxed library</a>. Using ajaxed makes your life even more easier ....</p>
<p>Greetings from hong kong!</p>
<div><table> <td><iframe src='http://digg.com/api/diggthis.php?w=new&amp;u=http://www.webdevbros.net/2008/07/10/asp-json-utility-version-15-released/&amp;t=ASP+JSON+utility+version+1.5+released&amp;s=normal' height='80' width='52' frameborder='0' scrolling='no'></iframe></td> <td><iframe src='http://www.reddit.com/button_content?newwindow=1&amp;url=http://www.webdevbros.net/2008/07/10/asp-json-utility-version-15-released/&amp;title=ASP+JSON+utility+version+1.5+released&amp;t=2 ' height='80' width='52' scrolling='no' frameborder='0' ></iframe></td> <td><iframe src='http://widgets.dzone.com/links/widgets/zoneit.html?url=http://www.webdevbros.net/2008/07/10/asp-json-utility-version-15-released/&amp;title=ASP+JSON+utility+version+1.5+released&amp;t=1 ' height='80' width='52' scrolling='no' frameborder='0' ></iframe></td> <td><script type="text/javascript"><!--yahooBuzzArticleHeadline=ASP+JSON+utility+version+1.5+released;//--></script><script type="text/javascript" src="http://d.yimg.com/ds/badge2.js" badgetype=square></script></td> <td><script type="text/javascript">tweetmeme_url='http://www.webdevbros.net/2008/07/10/asp-json-utility-version-15-released/'; tweetmeme_style = 'normal';; </script><script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js" ></script></td></table></div><!-- This is a HTML comment, it will not display in any page. Feel free to remove this comment if it cause any inconvenient to you.
	Thanks for using digg digg, please visit http://www.mkyong.com/blog/digg-digg-wordpress-plugin for any comments and ideas, 
	
    Author : Yong Mook Kim
    Website : http://www.mkyong.com
	-->]]></content:encoded>
			<wfw:commentRss>http://www.webdevbros.net/2008/07/10/asp-json-utility-version-15-released/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Developing a &#8216;login&#8217; with ajaxed</title>
		<link>http://www.webdevbros.net/2008/04/17/developing-a-login-with-ajaxed/</link>
		<comments>http://www.webdevbros.net/2008/04/17/developing-a-login-with-ajaxed/#comments</comments>
		<pubDate>Thu, 17 Apr 2008 10:14:33 +0000</pubDate>
		<dc:creator>Michal</dc:creator>
				<category><![CDATA[ajaxed]]></category>

		<guid isPermaLink="false">http://www.webdevbros.net/2008/04/17/developing-a-login-with-ajaxed/</guid>
		<description><![CDATA[Today we will check how we could realize a simple login using ajaxed for your web application. You know the common stuff where you enter your credentials (email and password) and you get authorized if they are correct.

Let's start of with the form...
PLAIN TEXT
HTML:




&#60;form id="frm"&#62;


&#160; &#160; &#60;strong&#62;Email:&#60;/strong&#62;&#60;br&#62;


&#160; &#160; &#60;input type="text" name="email"&#62;


&#160; &#160; &#60;br&#62;&#60;br&#62;


&#160; &#160; &#60;strong&#62;Password:&#60;/strong&#62;&#60;br&#62;


&#160; [...]]]></description>
			<content:encoded><![CDATA[<p>Today we will check how we could realize a simple login using <code>ajaxed</code> for your web application. You know the common stuff where you enter your credentials (email and password) and you get authorized if they are correct.<br />
<span id="more-170"></span><br />
Let's start of with the form...</p>
<div class="igBar"><span id="lhtml-12"><a href="#" onclick="javascript:showCodeTxt('html-12'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">HTML:</span>
<div id="html-12">
<div class="html">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><a href="http://december.com/html/4/element/form.html"><span style="color: #000000; font-weight: bold;">&lt;form</span></a> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">"frm"</span><span style="color: #000000; font-weight: bold;">&gt;</span></a></span></div>
</li>
<li style="font-weight: bold;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #009900;"><a href="http://december.com/html/4/element/strong.html"><span style="color: #000000; font-weight: bold;">&lt;strong&gt;</span></a></span>Email:<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/strong&gt;</span></span><span style="color: #009900;"><a href="http://december.com/html/4/element/br.html"><span style="color: #000000; font-weight: bold;">&lt;br&gt;</span></a></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #009900;"><a href="http://december.com/html/4/element/input.html"><span style="color: #000000; font-weight: bold;">&lt;input</span></a> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">"text"</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">"email"</span><span style="color: #000000; font-weight: bold;">&gt;</span></a></span></div>
</li>
<li style="font-weight: bold;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #009900;"><a href="http://december.com/html/4/element/br.html"><span style="color: #000000; font-weight: bold;">&lt;br&gt;</span></a></span><span style="color: #009900;"><a href="http://december.com/html/4/element/br.html"><span style="color: #000000; font-weight: bold;">&lt;br&gt;</span></a></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #009900;"><a href="http://december.com/html/4/element/strong.html"><span style="color: #000000; font-weight: bold;">&lt;strong&gt;</span></a></span>Password:<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/strong&gt;</span></span><span style="color: #009900;"><a href="http://december.com/html/4/element/br.html"><span style="color: #000000; font-weight: bold;">&lt;br&gt;</span></a></span></div>
</li>
<li style="font-weight: bold;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #009900;"><a href="http://december.com/html/4/element/input.html"><span style="color: #000000; font-weight: bold;">&lt;input</span></a> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">"password"</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">"pwd"</span><span style="color: #000000; font-weight: bold;">&gt;</span></a></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #009900;"><a href="http://december.com/html/4/element/br.html"><span style="color: #000000; font-weight: bold;">&lt;br&gt;</span></a></span><span style="color: #009900;"><a href="http://december.com/html/4/element/br.html"><span style="color: #000000; font-weight: bold;">&lt;br&gt;</span></a></span></div>
</li>
<li style="font-weight: bold;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #009900;"><a href="http://december.com/html/4/element/button.html"><span style="color: #000000; font-weight: bold;">&lt;button</span></a> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">"button"</span> <span style="color: #000066;">onclick</span>=<span style="color: #ff0000;">"ajaxed.callback('login', loggedin)"</span><span style="color: #000000; font-weight: bold;">&gt;</span></a></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; login</div>
</li>
<li style="font-weight: bold;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/button&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/form&gt;</span></span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Its very simple. Two text inputs and a button. Both text inputs have a name so we can talk to them. As you can already see we also hooked up a callback on the login button. Quite clear, because we'll handle the login on the server side. But before we do so we need to have a database with a <code>user</code> table including <code>id</code>, <code>email</code> and <code>pwd</code> column. (get a read about <a href="http://www.webdevbros.net/2007/07/16/using-a-database-with-ajaxed/">'using a database with ajaxed'</a> if you feel the need)</p>
<p>Now we write our server side callback which will handle the <code>login</code> action</p>
<div class="igBar"><span id="lasp-13"><a href="#" onclick="javascript:showCodeTxt('asp-13'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">ASP:</span>
<div id="asp-13">
<div class="asp">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF; font-weight:bold;">sub</span> callback<span style="color:#006600; font-weight:bold;">&#40;</span>a<span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#008000;">'hit the road if its an unknow action</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#990099; font-weight:bold;">if</span> a &lt;&gt; <span style="color:#CC0000;">"login"</span> <span style="color:#990099; font-weight:bold;">then</span> <span style="color:#990099; font-weight:bold;">exit</span> <span style="color:#0000FF; font-weight:bold;">sub</span></div>
</li>
<li style="font-weight: bold;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; sql = &nbsp; <span style="color:#CC0000;">"SELECT id "</span> &amp; _</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#CC0000;">"FROM user "</span> &amp; _</div>
</li>
<li style="font-weight: bold;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#CC0000;">"WHERE email = '"</span> &amp; str.<span style="color:#9900CC;">sqlSafe</span><span style="color:#006600; font-weight:bold;">&#40;</span>page.<span style="color:#9900CC;">RF</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC0000;">"email"</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span> &amp; <span style="color:#CC0000;">"' "</span> &amp; _</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#CC0000;">"AND pwd = '"</span> &amp; <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF; font-weight:bold;">new</span> MD5<span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color:#9900CC;">hash</span><span style="color:#006600; font-weight:bold;">&#40;</span>page.<span style="color:#9900CC;">RF</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC0000;">"pwd"</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span> &amp; <span style="color:#CC0000;">"'"</span></div>
</li>
<li style="font-weight: bold;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; ID = db.<span style="color:#9900CC;">getScalar</span><span style="color:#006600; font-weight:bold;">&#40;</span>sql, <span style="color:#800000;color:#800000;">0</span><span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#990099; font-weight:bold;">if</span> ID&gt; <span style="color:#800000;color:#800000;">0</span> <span style="color:#990099; font-weight:bold;">then</span></div>
</li>
<li style="font-weight: bold;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#990099; font-weight:bold;">session</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC0000;">"user"</span><span style="color:#006600; font-weight:bold;">&#41;</span> = ID</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; page.<span style="color:#9900CC;">return</span> <span style="color:#0000FF; font-weight:bold;">true</span></div>
</li>
<li style="font-weight: bold;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#990099; font-weight:bold;">else</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; page.<span style="color:#9900CC;">return</span> <span style="color:#0000FF; font-weight:bold;">false</span></div>
</li>
<li style="font-weight: bold;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#990099; font-weight:bold;">end</span> <span style="color:#990099; font-weight:bold;">if</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#990099; font-weight:bold;">end</span> <span style="color:#0000FF; font-weight:bold;">sub</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Basically it checks if a user with the given email and password exists. The <code>db.getScalar</code> function returns the users ID or <code>0</code> if no such user exists. If the ID was found (line 8) we log the user in by setting a session variable to its ID. After that we return <code>true</code> to the javascript callback (line 10) which can notify the user about the success. If the ID was 0 we return <code>false</code>. As you can see we used <code>str.sqlSafe</code> for the email to prevent SQL injection and we hashed the password with an <code>MD5</code> hash. This assumes that our passwords are hashed in the database (which is very common).</p>
<p>Last but not least we need the javascript callback function to notify the user about failure or success. On success we forward him/her to our default page (in this case just the root) and on failure we show a message.</p>
<div class="igBar"><span id="ljavascript-14"><a href="#" onclick="javascript:showCodeTxt('javascript-14'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">JAVASCRIPT:</span>
<div id="javascript-14">
<div class="javascript">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #003366; font-weight: bold;">function</span> loggedin<span style="color: #66cc66;">&#40;</span>r<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #66cc66;">&#40;</span>!r<span style="color: #66cc66;">&#41;</span> <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #000066;">alert</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">'could not login'</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; window.<span style="color: #006600;">location</span>.<span style="color: #006600;">href</span> = <span style="color: #3366CC;">'/'</span>;</div>
</li>
<li style="font-weight: bold;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#125;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>That was it. In fact you will need a bit more for you application but this gives you an idea about how to solve such a common problem with ajaxed.</p>
<p><a href='http://www.webdevbros.net/wp-content/uploads/2008/04/login.txt' title='login.txt'><strong>Download the full login.asp</strong></a> (tested with ajaxed 1.0)</p>
<p>You probably could extend your script ...</p>
<ul>
<li>.. that it checks if you are already logged in</li>
<li>.. that it handles logout</li>
<li>.. redirect the user to the originally requested url</li>
</ul>
<div><table> <td><iframe src='http://digg.com/api/diggthis.php?w=new&amp;u=http://www.webdevbros.net/2008/04/17/developing-a-login-with-ajaxed/&amp;t=Developing+a+%27login%27+with+ajaxed&amp;s=normal' height='80' width='52' frameborder='0' scrolling='no'></iframe></td> <td><iframe src='http://www.reddit.com/button_content?newwindow=1&amp;url=http://www.webdevbros.net/2008/04/17/developing-a-login-with-ajaxed/&amp;title=Developing+a+%27login%27+with+ajaxed&amp;t=2 ' height='80' width='52' scrolling='no' frameborder='0' ></iframe></td> <td><iframe src='http://widgets.dzone.com/links/widgets/zoneit.html?url=http://www.webdevbros.net/2008/04/17/developing-a-login-with-ajaxed/&amp;title=Developing+a+%27login%27+with+ajaxed&amp;t=1 ' height='80' width='52' scrolling='no' frameborder='0' ></iframe></td> <td><script type="text/javascript"><!--yahooBuzzArticleHeadline=Developing+a+%27login%27+with+ajaxed;//--></script><script type="text/javascript" src="http://d.yimg.com/ds/badge2.js" badgetype=square></script></td> <td><script type="text/javascript">tweetmeme_url='http://www.webdevbros.net/2008/04/17/developing-a-login-with-ajaxed/'; tweetmeme_style = 'normal';; </script><script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js" ></script></td></table></div><!-- This is a HTML comment, it will not display in any page. Feel free to remove this comment if it cause any inconvenient to you.
	Thanks for using digg digg, please visit http://www.mkyong.com/blog/digg-digg-wordpress-plugin for any comments and ideas, 
	
    Author : Yong Mook Kim
    Website : http://www.mkyong.com
	-->]]></content:encoded>
			<wfw:commentRss>http://www.webdevbros.net/2008/04/17/developing-a-login-with-ajaxed/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>ajaxed 1.0 released</title>
		<link>http://www.webdevbros.net/2008/04/15/ajaxed-10-released/</link>
		<comments>http://www.webdevbros.net/2008/04/15/ajaxed-10-released/#comments</comments>
		<pubDate>Tue, 15 Apr 2008 07:55:23 +0000</pubDate>
		<dc:creator>Michal</dc:creator>
				<category><![CDATA[ajaxed]]></category>
		<category><![CDATA[classic ASP (VBScript)]]></category>

		<guid isPermaLink="false">http://www.webdevbros.net/2008/04/15/ajaxed-10-released/</guid>
		<description><![CDATA[the new major release of asp ajaxed is here. I have jumped with counting to version 1.0 because it has been such a big update and the library reached its maturity level. Curious whats new in the box? A lot of  improvements and new stuff - i got a lot of inspiration from ruby [...]]]></description>
			<content:encoded><![CDATA[<p>the new major release of asp ajaxed is here. I have jumped with counting to version 1.0 because it has been such a big update and the library reached its maturity level. Curious whats new in the box? A lot of  improvements and new stuff - i got a lot of inspiration from ruby on rails as well and the biggest goodie is an own developer console with unit tests, documentation creator...</p>
<p><a href='http://www.webdevbros.net/wp-content/uploads/2008/04/ajaxed1.gif' title='ajaxed1.gif'><img src='http://www.webdevbros.net/wp-content/uploads/2008/04/ajaxed1.thumbnail.gif' alt='ajaxed1.gif' /></a><a href='http://www.webdevbros.net/wp-content/uploads/2008/04/ajaxed2.gif' title='ajaxed2.gif'><img src='http://www.webdevbros.net/wp-content/uploads/2008/04/ajaxed2.thumbnail.gif' alt='ajaxed2.gif' /></a><br />
<span id="more-165"></span></p>
<p>For all who cannot wait go directly to the <a href="http://www.webdevbros.net/wp-content/uploads/2008/04/ajaxed10.zip">download</a> and update to the new version.</p>
<p>Ok, so whats new in 1.0? I have aggregated all the comments and tried to implement all your requests. As I am developing with Ruby on Rails, I have added some rubyism to the whole library as well. Do I have to change my running system completely now? No! no need to panick. There are only two small things you need to prepare before upgrading to 1.0 (mentioned at the end of the article). Ok, let's move to the updates...</p>
<p><strong>ajaxed console</strong><br />
Probably the most fancy update is the new ajaxed console which supports you while you develop your applications. its immediately available through <code>/ajaxed/console/</code> on your server. You'll find there a lot of useful stuff like a test runner, current configuration, documentation creator, regular expression evaluator, etc. Check a <a href="http://www.grafix.at/ajaxed/console/">demo of the console here</a></p>
<p><strong>New ajaxed config</strong><br />
The ajaxed config (<code>config.asp</code>) has been moved to an own folder which is located in the webroot <code>/ajaxedConfig/config.asp</code>. Seperating the configuration from the library makes the update process easier now. You can overwrite the ajaxed library without any thoughts...</p>
<p><strong>html, head and body tags integration (header &#038; footer)</strong><br />
People used to have problems of integrating the html, head and body tags into their pages.  This has been solved now and you can find a <code>header.asp</code> and <code>footer.asp</code> in your ajaxedConfig folder. Those files are automatically loaded within your pages. This change brought some additional features as well</p>
<ul>
<li><code>ajaxedPage.defaultStructure</code> property lets you load your page with a default header and footer (provided by the library itself). This is useful if you quickly need a standard structure and don't really care about the details</li>
<li><code>ajaxedPage.title</code> gives you the possibility to assign a title to your page which may be used in the <code>header</code></li>
<li><code>ajaxedPage.plain</code> property allows to render a page completely plain which means it renders only those things which are defined in the page itself. (no header and footer). You will need this for your <code>XHR</code></li>
<li><code>lib.exec</code> lets you call any function only if it exists. This is used within the <code>header</code> to allow page specific head elements. Whenever you want anything to appear in your header just add a <code>header() sub</code> to your page and place the stuff there. e.g. especially javascripts, styles</li>
</ul>
<div class="igBar"><span id="lasp-22"><a href="#" onclick="javascript:showCodeTxt('asp-22'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">ASP:</span>
<div id="asp-22">
<div class="asp">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF; font-weight:bold;">&lt;%</span> <span style="color:#0000FF; font-weight:bold;">sub</span> header<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#0000FF; font-weight:bold;">%&gt;</span></div>
</li>
<li style="font-weight: bold;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &lt;style&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#008000;">/* some styles */</span></div>
</li>
<li style="font-weight: bold;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &lt;/style&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#0000FF; font-weight:bold;">&lt;%</span> page.<span style="color:#9900CC;">loadJSFile</span> <span style="color:#CC0000;">"someJSFile.js"</span> <span style="color:#0000FF; font-weight:bold;">%&gt;</span></div>
</li>
<li style="font-weight: bold;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF; font-weight:bold;">&lt;%</span> <span style="color:#990099; font-weight:bold;">end</span> <span style="color:#0000FF; font-weight:bold;">sub</span> <span style="color:#0000FF; font-weight:bold;">%&gt;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Best thing is you take a look into the predefined <code>header.asp</code> in your config to see whats going on there. And don't forget it's up to you what you bung in there. You can add as many <code>lib.exec</code> calls as you want.</p>
<p><strong>Environment support</strong><br />
ajaxed supports two environments now: <code>LIVE</code> (production) and <code>DEV</code> (development). The config variable <code>AJAXED_ENVIRONMENT</code> sets the current environment. This enhancement allows us ...</p>
<ul>
<li>creating conditions dependent on the environment. <code>lib.env</code>, <code>lib.DEV</code> and <code>lib.LIVE</code> are helpers to check which environment is running.</li>
<li>setting <code>ajaxedPage.onlyDev</code> to <code>true</code> in order to prevent calling it on the <code>LIVE</code> environment. E.g. whole ajaxed console and tests are only available on DEV env yet.</li>
</ul>
<p>(The default environment is always development)</p>
<p><strong>Unit tests</strong><br />
<code>TestFixture</code> class lets you create unit tests for your own applications. It comes with a lot of different asserts (as commonly known in other unit testing frameworks) and is very quickly to set up. After you have written your tests you can run them directly from the ajaxed console. Tests for the library itself are located there as well. Here is an example of how you write a simple test (test file must start with <code>test_</code>):</p>
<div class="igBar"><span id="lasp-23"><a href="#" onclick="javascript:showCodeTxt('asp-23'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">ASP:</span>
<div id="asp-23">
<div class="asp">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&lt;!--#include virtual=<span style="color:#CC0000;">"/ajaxed/class_testFixture/testFixture.asp"</span>--&gt;</div>
</li>
<li style="font-weight: bold;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF; font-weight:bold;">&lt;%</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#990099; font-weight:bold;">set</span> tf = <span style="color:#0000FF; font-weight:bold;">new</span> TestFixture</div>
</li>
<li style="font-weight: bold;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">tf.<span style="color:#9900CC;">run</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#008000;">'create test methods starting with test_ </span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#008000;">'followed by an increasing number</span></div>
</li>
<li style="font-weight: bold;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF; font-weight:bold;">sub</span> test_1<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; tf.<span style="color:#9900CC;">assertEqual</span> <span style="color:#CC0000;">"x"</span>, <span style="color:#CC0000;">"x"</span>, <span style="color:#CC0000;">"x should be x"</span></div>
</li>
<li style="font-weight: bold;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; tf.<span style="color:#9900CC;">assert</span> <span style="color:#800000;color:#800000;">1</span> = <span style="color:#800000;color:#800000;">1</span>, <span style="color:#CC0000;">"one should be definitely one"</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; tf.<span style="color:#9900CC;">assertInstanceOf</span> <span style="color:#CC0000;">"testFixture"</span>, tf, <span style="color:#CC0000;">"this test should be a TestFixture"</span></div>
</li>
<li style="font-weight: bold;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; tf.<span style="color:#9900CC;">assertInDelta</span> <span style="color:#800000;color:#800000;">1</span>, <span style="color:#800000;color:#800000;">1</span>.<span style="color:#800000;color:#800000;">1</span>, <span style="color:#800000;color:#800000;">0</span>.<span style="color:#800000;color:#800000;">1</span>, <span style="color:#CC0000;">"equality with a delta"</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; tf.<span style="color:#9900CC;">assertHas</span> <span style="color:#990099; font-weight:bold;">array</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#800000;color:#800000;">1</span>, <span style="color:#800000;color:#800000;">2</span>, <span style="color:#800000;color:#800000;">3</span><span style="color:#006600; font-weight:bold;">&#41;</span>, <span style="color:#800000;color:#800000;">2</span>, <span style="color:#CC0000;">"the array should contain 2"</span></div>
</li>
<li style="font-weight: bold;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#990099; font-weight:bold;">end</span> <span style="color:#0000FF; font-weight:bold;">sub</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF; font-weight:bold;">%&gt;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p><strong>Documentation generator (Documentor)</strong><br />
Some of you have long waited for the day to come :) Finally its here! Automatically create a documentation of your ASP code. The tool is called <code>Documentor</code> and can be found within your ajaxed console. It is also used for the generation of the actual ajaxed documentation which got a small face lift as well. Read <a href="http://www.grafix.at/ajaxed/console/documentor/manual.asp">How to document</a> to know more about documenting your code (This manual can be found in your ajaxed console). Example of a method documentation:</p>
<div class="igBar"><span id="lasp-24"><a href="#" onclick="javascript:showCodeTxt('asp-24'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">ASP:</span>
<div id="asp-24">
<div class="asp">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#008000;">'' @DESCRIPTION: gets all users for a given country</span></div>
</li>
<li style="font-weight: bold;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#008000;">'' @PARAM: country [string]: specified country. e.g. AT</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#008000;">'' @RETURN: [recordset]</span></div>
</li>
<li style="font-weight: bold;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF; font-weight:bold;">function</span> getUsersBy<span style="color:#006600; font-weight:bold;">&#40;</span>country<span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#990099; font-weight:bold;">end</span> <span style="color:#0000FF; font-weight:bold;">function</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p><strong>Automatic version check</strong><br />
The ajaxed console checks automatically for a new version of ajaxed and reminds you if there is a new version available. Never miss an update.</p>
<p><strong>MD5 hash class</strong><br />
We have a hash on board of the library now. Hash your passwords, etc. easily with:</p>
<div class="igBar"><span id="lasp-25"><a href="#" onclick="javascript:showCodeTxt('asp-25'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">ASP:</span>
<div id="asp-25">
<div class="asp">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">hash = <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF; font-weight:bold;">new</span> MD5<span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color:#9900CC;">hash</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC0000;">"mypassword"</span><span style="color:#006600; font-weight:bold;">&#41;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p><strong>Database methods</strong><br />
There are some new useful database methods which makes your code more readable and easier to debug. </p>
<div class="igBar"><span id="lasp-26"><a href="#" onclick="javascript:showCodeTxt('asp-26'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">ASP:</span>
<div id="asp-26">
<div class="asp">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#008000;">'get the number of records of a table</span></div>
</li>
<li style="font-weight: bold;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">numberOfRecords = db.<span style="color:#330066;">count</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC0000;">"tablename"</span>, empty<span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#008000;">'get number of records with condition</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">numberOfRecords = db.<span style="color:#330066;">count</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC0000;">"tablename"</span>, <span style="color:#CC0000;">"active = 1"</span><span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#008000;">'insert a record into a table (returns the ID)</span></div>
</li>
<li style="font-weight: bold;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">ID = db.<span style="color:#9900CC;">insert</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC0000;">"tablename"</span>, <span style="color:#990099; font-weight:bold;">array</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC0000;">"firstname"</span>, <span style="color:#CC0000;">"jack"</span>, <span style="color:#CC0000;">"lastname"</span>, <span style="color:#CC0000;">"johnson"</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#008000;">'updating a record</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">db.<span style="color:#9900CC;">update</span> <span style="color:#CC0000;">"tablename"</span>, <span style="color:#990099; font-weight:bold;">array</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC0000;">"firstname"</span>, <span style="color:#CC0000;">"Johnny"</span><span style="color:#006600; font-weight:bold;">&#41;</span>, ID</div>
</li>
<li style="font-weight: bold;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#008000;">'works as well with condition</span></div>
</li>
<li style="font-weight: bold;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">db.<span style="color:#9900CC;">update</span> <span style="color:#CC0000;">"tablename"</span>, <span style="color:#990099; font-weight:bold;">array</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC0000;">"firstname"</span>, <span style="color:#CC0000;">"Johnny"</span><span style="color:#006600; font-weight:bold;">&#41;</span>, <span style="color:#CC0000;">"firstname = 'Jack'"</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#008000;">'delete a record with a condition</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">db.<span style="color:#330066;">delete</span> <span style="color:#CC0000;">"tablename"</span>, <span style="color:#CC0000;">"active = 0"</span></div>
</li>
<li style="font-weight: bold;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#008000;">'delete with an ID</span></div>
</li>
<li style="font-weight: bold;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">db.<span style="color:#330066;">delete</span> <span style="color:#CC0000;">"tablename"</span>, <span style="color:#800000;color:#800000;">10</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#008000;">'toggle the value of bit fields.</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">db.<span style="color:#9900CC;">toggle</span> <span style="color:#CC0000;">"tablename"</span>, <span style="color:#CC0000;">"active"</span>, <span style="color:#CC0000;">"country = 'AT'"</span></div>
</li>
<li style="font-weight: bold;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#008000;">'or with ID</span></div>
</li>
<li style="font-weight: bold;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">db.<span style="color:#9900CC;">toggle</span> <span style="color:#CC0000;">"tablename"</span>, <span style="color:#CC0000;">"active"</span>, <span style="color:#800000;color:#800000;">10</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Most of them support a condition parameter which can be either a number (its used automatically as ID) or a string (which is a condition for the <code>WHERE</code> clause).<br />
Those are handy for common CRUD operations. If you need more sophisticated stuff you should still use <code>db.getRecordset()</code>.</p>
<p><strong>RSS reader and writer</strong><br />
If you ever want to generate an RSS feed in your application or read another one - it's no problem anymore. ajaxed has the right component inside. There is a full detailed article about this component <a href="http://www.webdevbros.net/2007/07/01/asp-vbscript-rss-readerwriter-class/">here</a>.</p>
<div class="igBar"><span id="lasp-27"><a href="#" onclick="javascript:showCodeTxt('asp-27'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">ASP:</span>
<div id="asp-27">
<div class="asp">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#008000;">'example of reading some feed</span></div>
</li>
<li style="font-weight: bold;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#990099; font-weight:bold;">set</span> r = <span style="color:#0000FF; font-weight:bold;">new</span> RSS</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">r.<span style="color:#9900CC;">url</span> = <span style="color:#CC0000;">"http://domain.com/feed"</span></div>
</li>
<li style="font-weight: bold;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">r.<span style="color:#9900CC;">load</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p><strong>Template class</strong><br />
ajaxed 1.0 includes a template class called <code>TextTemplate</code>. Very useful if you send emails within your applications. Create an template for the content of your email and parse it using <code>TextTemplate</code>. The ajaxed console provides a simple management of templates. For more details about <code>TextTemplate</code> read the article <a href="http://www.webdevbros.net/2007/06/28/template-component-for-classic-asp/">Template component for classic ASP</a> or check the ajaxed documentation. Simple example</p>
<div class="igBar"><span id="lasp-28"><a href="#" onclick="javascript:showCodeTxt('asp-28'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">ASP:</span>
<div id="asp-28">
<div class="asp">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#990099; font-weight:bold;">set</span> t = <span style="color:#0000FF; font-weight:bold;">new</span> TextTemplate</div>
</li>
<li style="font-weight: bold;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">t.<span style="color:#9900CC;">filename</span> = <span style="color:#CC0000;">"mytemplate.template"</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">t.<span style="color:#330066;">add</span> <span style="color:#CC0000;">"name"</span>, <span style="color:#CC0000;">"jack johnson"</span></div>
</li>
<li style="font-weight: bold;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#008000;">'your email object</span></div>
</li>
<li style="font-weight: bold;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#008000;">'i use the first line of the template as the subject of my emails</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">mail.<span style="color:#9900CC;">subject</span> = t.<span style="color:#9900CC;">getFirstLine</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">mail.<span style="color:#9900CC;">body</span> = t.<span style="color:#9900CC;">getAllButFirstLine</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p><strong>Cache component</strong><br />
Caching data, rss feeds, etc. globally for all visitors can be achieved now with the <code>Cache</code> class. This class has been around for while as well and a details article is available <a href="http://www.webdevbros.net/2006/11/18/cache-object-for-classic-asp/">here</a></p>
<p><strong>Discussion group launched</strong><br />
<img src="http://groups.google.com/groups/img/3nb/groups_bar_de.gif" align="left" height=26 width=132 alt="Google Groups">I have created an own google <a href="http://groups.google.com/group/asp-ajaxed">asp ajaxed discussion group</a> for better support and communication with all ajaxed users.</p>
<p><strong>Minor changes/improvements</strong></p>
<ul>
<li><code>init()</code> must not exist necessarily anymore. If it exists it will be called. if not then not ;) Thanks to the new <code>lib.exec()</code> and <code>lib.getFunction()</code>. Check the reference for more details.</li>
<li><code>str.matching</code> checks a string against a given regular expression pattern. Is much more readable then creating the regex object over and over again.</li>
<li>An error will be raised if there is no <code>main()</code> in your page. Makes it easier to know whats going on...</li>
<li><code>lib.contains</code> is a useful function which lets us check if a given value exists in a given data structure. Currently supported data structures are <code>array</code> and <code>dictionary</code>. Usage is easy: <code>lib.contains(array("yes", "no"), "maybe")</code></li>
<li>script.aculo.us is now part of the library as well. I decided to do this as it plays very nicely with prototype and both are being used in ruby on rails successfully for a long time.</li>
<li>some more minor improvements and bug fixed which you bette look up in the <code>changes.txt</code> or directly in the SVN</li>
</ul>
<p>That was it. Hope you enjoy working with the new version and I am looking forward for your feedback .. which already made the library what it is! Here are some things i am working on already...</p>
<ul>
<li>generic email class</li>
<li>automatically notify admin about ANY errors</li>
<li>plugin infrastructure</li>
<li>asserts for request and response</li>
<li>logging possibilities</li>
<li>validator for business objects</li>
<li>dropdown control and calendar control</li>
</ul>
<p><strong>If you UPGRADE from 0.3</strong> then the only thing you need to do is to move your <code>config.asp</code> into the new <code>/ajaxedConfig/</code> folder. Last but not least create a <code>header.asp</code> and <code>footer.asp</code> in that folder. Put all your html, head and body tags there. You can use the existing ones and adopt them to your needs. Last but not least change <code>AJAXED_ENVIRONMENT</code> to your needed environment. </p>
<p><a href="http://www.webdevbros.net/ajaxed"><strong>Download ajaxed 1.0</strong></a></p>
<p>If you want to live on the edge then grab the <a href="http://code.google.com/p/asp-ajaxed/">latest version from SVN</a>.</p>
<div><table> <td><iframe src='http://digg.com/api/diggthis.php?w=new&amp;u=http://www.webdevbros.net/2008/04/15/ajaxed-10-released/&amp;t=ajaxed+1.0+released&amp;s=normal' height='80' width='52' frameborder='0' scrolling='no'></iframe></td> <td><iframe src='http://www.reddit.com/button_content?newwindow=1&amp;url=http://www.webdevbros.net/2008/04/15/ajaxed-10-released/&amp;title=ajaxed+1.0+released&amp;t=2 ' height='80' width='52' scrolling='no' frameborder='0' ></iframe></td> <td><iframe src='http://widgets.dzone.com/links/widgets/zoneit.html?url=http://www.webdevbros.net/2008/04/15/ajaxed-10-released/&amp;title=ajaxed+1.0+released&amp;t=1 ' height='80' width='52' scrolling='no' frameborder='0' ></iframe></td> <td><script type="text/javascript"><!--yahooBuzzArticleHeadline=ajaxed+1.0+released;//--></script><script type="text/javascript" src="http://d.yimg.com/ds/badge2.js" badgetype=square></script></td> <td><script type="text/javascript">tweetmeme_url='http://www.webdevbros.net/2008/04/15/ajaxed-10-released/'; tweetmeme_style = 'normal';; </script><script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js" ></script></td></table></div><!-- This is a HTML comment, it will not display in any page. Feel free to remove this comment if it cause any inconvenient to you.
	Thanks for using digg digg, please visit http://www.mkyong.com/blog/digg-digg-wordpress-plugin for any comments and ideas, 
	
    Author : Yong Mook Kim
    Website : http://www.mkyong.com
	-->]]></content:encoded>
			<wfw:commentRss>http://www.webdevbros.net/2008/04/15/ajaxed-10-released/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>ajaxed google discussion group</title>
		<link>http://www.webdevbros.net/2008/03/16/ajaxed-google-discussion-group/</link>
		<comments>http://www.webdevbros.net/2008/03/16/ajaxed-google-discussion-group/#comments</comments>
		<pubDate>Sun, 16 Mar 2008 14:04:15 +0000</pubDate>
		<dc:creator>Michal</dc:creator>
				<category><![CDATA[ajaxed]]></category>

		<guid isPermaLink="false">http://www.webdevbros.net/2008/03/16/ajaxed-google-discussion-group/</guid>
		<description><![CDATA[ Today i had some time and have created an own google discussion group (forum) for the ajaxed project. This will make the management of problems much easier for me. At least i hope so :) It should help you guys to communicate about your solutions and issues with ajaxed. Also all issues regarding JSON [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://groups.google.com/group/asp-ajaxed"><img src='http://www.webdevbros.net/wp-content/uploads/2008/03/asp-ajaxed.gif' alt='asp-ajaxed.gif' align='left' /></a> Today i had some time and have created an own google <a href="http://groups.google.com/group/asp-ajaxed">discussion group</a> (forum) for the ajaxed project. This will make the management of problems much easier for me. At least i hope so :) It should help you guys to communicate about your solutions and issues with ajaxed. Also all issues regarding JSON in connection with ASP should go there, and all other classic ASP topics. I can track all these stuff much better then. Thanks for your help and contributions!</p>
<p><a href="http://groups.google.com/group/asp-ajaxed">ajaxed &#038; asp JSON disussion</a></p>
<div><table> <td><iframe src='http://digg.com/api/diggthis.php?w=new&amp;u=http://www.webdevbros.net/2008/03/16/ajaxed-google-discussion-group/&amp;t=ajaxed+google+discussion+group&amp;s=normal' height='80' width='52' frameborder='0' scrolling='no'></iframe></td> <td><iframe src='http://www.reddit.com/button_content?newwindow=1&amp;url=http://www.webdevbros.net/2008/03/16/ajaxed-google-discussion-group/&amp;title=ajaxed+google+discussion+group&amp;t=2 ' height='80' width='52' scrolling='no' frameborder='0' ></iframe></td> <td><iframe src='http://widgets.dzone.com/links/widgets/zoneit.html?url=http://www.webdevbros.net/2008/03/16/ajaxed-google-discussion-group/&amp;title=ajaxed+google+discussion+group&amp;t=1 ' height='80' width='52' scrolling='no' frameborder='0' ></iframe></td> <td><script type="text/javascript"><!--yahooBuzzArticleHeadline=ajaxed+google+discussion+group;//--></script><script type="text/javascript" src="http://d.yimg.com/ds/badge2.js" badgetype=square></script></td> <td><script type="text/javascript">tweetmeme_url='http://www.webdevbros.net/2008/03/16/ajaxed-google-discussion-group/'; tweetmeme_style = 'normal';; </script><script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js" ></script></td></table></div><!-- This is a HTML comment, it will not display in any page. Feel free to remove this comment if it cause any inconvenient to you.
	Thanks for using digg digg, please visit http://www.mkyong.com/blog/digg-digg-wordpress-plugin for any comments and ideas, 
	
    Author : Yong Mook Kim
    Website : http://www.mkyong.com
	-->]]></content:encoded>
			<wfw:commentRss>http://www.webdevbros.net/2008/03/16/ajaxed-google-discussion-group/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>picnik comes with a free-to-use image editing API for your website</title>
		<link>http://www.webdevbros.net/2008/01/23/picnik-comes-with-a-free-to-use-image-editing-api-for-your-website/</link>
		<comments>http://www.webdevbros.net/2008/01/23/picnik-comes-with-a-free-to-use-image-editing-api-for-your-website/#comments</comments>
		<pubDate>Wed, 23 Jan 2008 03:32:11 +0000</pubDate>
		<dc:creator>Michal</dc:creator>
				<category><![CDATA[.net]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[classic ASP (VBScript)]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://www.webdevbros.net/2008/01/23/picnik-comes-with-a-free-to-use-image-editing-api-for-your-website/</guid>
		<description><![CDATA[ Ever heard from Picnik? It allows you editing your images direclty within your browser. Forget Adobe Photoshop :) Picnik has been around for a while now but recently it started to offer its service for the public. for free! I played around a bit and must say that it is amazing .. Use it [...]]]></description>
			<content:encoded><![CDATA[<p><img src='http://www.webdevbros.net/wp-content/uploads/2008/01/picnic.gif' alt='picnic.gif' style="float:left"/> Ever heard from <a href="http://www.picnik.com">Picnik</a>? It allows you editing your images direclty within your browser. Forget Adobe Photoshop :) Picnik has been around for a while now but recently it started to offer its service for the public. for free! I played around a bit and must say that it is amazing .. Use it within PHP, classic ASP, .net, Ruby on Rails  or whatever... especially i like the idea of the whole service which works like this...</p>
<ol>
<li>Send your images to their service (existing image via URL or encoded as multi-part)</li>
<li>Then the user modifies the picture (size, colors, rotation, special effects...)</li>
<li>Picnik sends you the picture back to your server (either an URL where you can download it or directly as multi-part image)</li>
</ol>
<p>Here comes an example I have built for demonstration...<span id="more-149"></span>Click on the picture below to edit it.</p>
<p><a href="http://www.picnik.com/service/?_apikey=178ef7667a0c301dd8eb89e76caba626&#038;_import=http%3A//www.webdevbros.net/wp-content/uploads/2008/01/googleapple.jpg&#038;_export=http%3A//www.webdevbros.net/2008/01/23/picnik-comes-with-a-free-to-use-image-editing-api-for-your-website&#038;_export_title=back%20to%20webdevbros"><img src='http://www.webdevbros.net/wp-content/uploads/2008/01/googleapple.jpg' alt='googleapple.jpg' /></a></p>
<p>Everything realized by using a link to this URL:</p>
<div class="igBar"><span id="lhtml-30"><a href="#" onclick="javascript:showCodeTxt('html-30'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">HTML:</span>
<div id="html-30">
<div class="html">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">http://www.picnik.com/service/</div>
</li>
<li style="font-weight: bold;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; ?_apikey=178ef7667a0c301dd8eb89e76caba626</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color: #ddbb00;">&amp;_import=http%3A//www.webdevbros.net/wp-content/uploads/2008/01/googleapple.jpg</div>
</li>
<li style="font-weight: bold;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &amp;_export=http%3A//www.webdevbros.net/2008/01/23/picnik-comes-with-a-free-to-use-image-editing-api-for-your-website</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#767676;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &amp;_export_title=back%20to%20webdevbros </span></div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Pretty cool isn't it? Thats the basic example but you can customize a lot more (see their <a href="http://www.picnik.com/info/api/reference">API</a>). Also I didn't progress the picture back on my server.</p>
<p>If you want to get started i recommend to start with their <a href="http://www.picnik.com/info/api/tutorials">tutorials</a>. They are nicely written and done in 10 minutes.</p>
<div><table> <td><iframe src='http://digg.com/api/diggthis.php?w=new&amp;u=http://www.webdevbros.net/2008/01/23/picnik-comes-with-a-free-to-use-image-editing-api-for-your-website/&amp;t=picnik+comes+with+a+free-to-use+image+editing+API+for+your+website&amp;s=normal' height='80' width='52' frameborder='0' scrolling='no'></iframe></td> <td><iframe src='http://www.reddit.com/button_content?newwindow=1&amp;url=http://www.webdevbros.net/2008/01/23/picnik-comes-with-a-free-to-use-image-editing-api-for-your-website/&amp;title=picnik+comes+with+a+free-to-use+image+editing+API+for+your+website&amp;t=2 ' height='80' width='52' scrolling='no' frameborder='0' ></iframe></td> <td><iframe src='http://widgets.dzone.com/links/widgets/zoneit.html?url=http://www.webdevbros.net/2008/01/23/picnik-comes-with-a-free-to-use-image-editing-api-for-your-website/&amp;title=picnik+comes+with+a+free-to-use+image+editing+API+for+your+website&amp;t=1 ' height='80' width='52' scrolling='no' frameborder='0' ></iframe></td> <td><script type="text/javascript"><!--yahooBuzzArticleHeadline=picnik+comes+with+a+free-to-use+image+editing+API+for+your+website;//--></script><script type="text/javascript" src="http://d.yimg.com/ds/badge2.js" badgetype=square></script></td> <td><script type="text/javascript">tweetmeme_url='http://www.webdevbros.net/2008/01/23/picnik-comes-with-a-free-to-use-image-editing-api-for-your-website/'; tweetmeme_style = 'normal';; </script><script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js" ></script></td></table></div><!-- This is a HTML comment, it will not display in any page. Feel free to remove this comment if it cause any inconvenient to you.
	Thanks for using digg digg, please visit http://www.mkyong.com/blog/digg-digg-wordpress-plugin for any comments and ideas, 
	
    Author : Yong Mook Kim
    Website : http://www.mkyong.com
	-->]]></content:encoded>
			<wfw:commentRss>http://www.webdevbros.net/2008/01/23/picnik-comes-with-a-free-to-use-image-editing-api-for-your-website/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
