<?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>TriLogic Sandbox</title>
	<atom:link href="http://sandbox.trilogicllc.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://sandbox.trilogicllc.com</link>
	<description>The Playground</description>
	<lastBuildDate>Tue, 04 May 2010 14:27:28 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Squirrel Interface in C#</title>
		<link>http://sandbox.trilogicllc.com/2010/04/squirrel-interface-in-c/</link>
		<comments>http://sandbox.trilogicllc.com/2010/04/squirrel-interface-in-c/#comments</comments>
		<pubDate>Tue, 27 Apr 2010 05:00:42 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[DLR]]></category>
		<category><![CDATA[interpreter]]></category>
		<category><![CDATA[scripting]]></category>
		<category><![CDATA[squirrel-lang]]></category>

		<guid isPermaLink="false">http://sandbox.trilogicllc.com/?p=389</guid>
		<description><![CDATA[I&#8217;ve worked with a wide variety of script engines and interpreters throughout my career in programming.  It all started when I needed a configuration language for a multi-platform graphics windows kernel I wrote that ran under DOS, X Windows, and proprietary hardware based on the AMD 29K processor.  My earliest attempt to implement [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve worked with a wide variety of script engines and interpreters throughout my career in programming.  It all started when I needed a configuration language for a multi-platform graphics windows kernel I wrote that ran under DOS, X Windows, and proprietary hardware based on the AMD 29K processor.  My earliest attempt to implement configuration scripting resulted in a bizarre object oriented event source + event sink architecture we called &#8216;config&#8217; and while it produced a working user interface for a few venture capital demos it was far from being a good solution.  Thankfully I discovered Tcl 6.3 and replaced my handiwork with a simple scripting language that looked and acted like a real programming language.  I&#8217;ve been hooked on scripting ever since.<br />
<span id="more-389"></span><br />
These days you can find a script interpreter just about anywhere in whatever flavor suits your taste but the topic of this post is a .NET wrapper I wrote for Squirrel.  Squirrel is a Lua derivative geared toward game engine embedding.  You can find the official squirrel website here: <a title="Squirrel-Lang.org" href="http://squirrel-lang.org/" target="_blank">squirrel-lang.org</a>.  I wrote SqInterface for the purpose of embedding Squirrel into .NET applications &#8211; primarily data processing apps rather than games.</p>
<p>SqInterface lets you call Squirrel functions, access the stack, variables and even extend the runtime with methods from the .NET world.  The download contains a complete project that builds an older version of Squirrel as a DLL and builds a .NET interop wrapper for that DLL.  I&#8217;m skeptical that the latest Squirrel code will compile under the current project which is why I included the older code.</p>
<p>This library does not use or require the DLR (Dynamic Language Runtime).  The library, squirrel and example projects are about twenty megs so give yourself some time to download them.  Enjoy!</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F04%2Fsquirrel-interface-in-c%2F&amp;title=Squirrel+Interface+in+C%23"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F04%2Fsquirrel-interface-in-c%2F&amp;title=Squirrel+Interface+in+C%23"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F04%2Fsquirrel-interface-in-c%2F&amp;title=Squirrel+Interface+in+C%23"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F04%2Fsquirrel-interface-in-c%2F&amp;headline=Squirrel+Interface+in+C%23"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Squirrel+Interface+in+C%23&amp;url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F04%2Fsquirrel-interface-in-c%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Squirrel+Interface+in+C%23&amp;u=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F04%2Fsquirrel-interface-in-c%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Squirrel+Interface+in+C%23&amp;url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F04%2Fsquirrel-interface-in-c%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Squirrel+Interface+in+C%23&amp;url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F04%2Fsquirrel-interface-in-c%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Squirrel+Interface+in+C%23&amp;url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F04%2Fsquirrel-interface-in-c%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F04%2Fsquirrel-interface-in-c%2F&amp;title=Squirrel+Interface+in+C%23&amp;summary=&amp;source="><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F04%2Fsquirrel-interface-in-c%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F04%2Fsquirrel-interface-in-c%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/buzz/post?url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F04%2Fsquirrel-interface-in-c%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://sandbox.trilogicllc.com/2010/04/squirrel-interface-in-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Slider Plugin for Wordpress</title>
		<link>http://sandbox.trilogicllc.com/2010/04/bxslider-for-wordpress/</link>
		<comments>http://sandbox.trilogicllc.com/2010/04/bxslider-for-wordpress/#comments</comments>
		<pubDate>Thu, 15 Apr 2010 20:57:37 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[bxSlider]]></category>
		<category><![CDATA[fade]]></category>
		<category><![CDATA[fader]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[slide show]]></category>
		<category><![CDATA[slider]]></category>
		<category><![CDATA[ticker]]></category>

		<guid isPermaLink="false">http://sandbox.trilogicllc.com/?p=216</guid>
		<description><![CDATA[I recently found that I needed the ability to create &#8220;a slider&#8221; for Wordpress.   In laymans terms this means that I have multiple blocks of related content that I want to display one at a time all in the within same area of a website.
Some important requirements I needed for this project were:

The ability [...]]]></description>
			<content:encoded><![CDATA[<p>I recently found that I needed the ability to create &#8220;a slider&#8221; for Wordpress.   In laymans terms this means that I have multiple blocks of related content that I want to display one at a time all in the within same area of a website.</p>
<p>Some important requirements I needed for this project were:</p>
<ol>
<li>The ability to do this in entirely in Wordpress.</li>
<li>The ability to be able to put the slider on any page or in any post.</li>
<li>The ability to be able to leverage the short code feature of Wordpress.</li>
<li>The option of multiple sliders on the same page or even the same post.</li>
<li>The option of working within widgets.</li>
<li>TO NOT edit the theme in any way to make all this work.</li>
</ol>
<p><span id="more-216"></span><br />
So I went out searching for Wordpress sliders and I found a good number of plugins that do these sort of thing. I didn&#8217;t find anything that met my reguirements so immediately the home brew warning began to sound in my head. The biggest hurdle of course was that I knew precious little of PHP programming nor of the Wordpress API both of which would need to change.</p>
<p>I found a good starting point in<a title="Steven Wanderski" href="http://stevenwanderski.com/"> Steven Wanderski&#8217;s</a> <a title="bxSlider" href="http://bxslider.com/">bxSlider</a> component for jQuery. This is a nice little library that makes putting a slider on a web page very easy. In fact you can use the same component to make sliders, faders and even tickers. After dicing it up and doing things the hard way (editing my theme) I had a working slider on my site. I was convinced the code would do what I wanted I just needed to make it work more easily.</p>
<p>I won&#8217;t bore you with the details of editing and testing. After about five hours I managed to pull together the initial 0.1b version of my the bxSlider Plugin for Wordpress which happens to be my very first plugin for Wordpress. You can see the results here:  <a title="bxSlider Demo" href="http://sandbox.trilogicllc.com/etc/bxslider-for-wordpress/">Slider Demo</a></p>
<p>While there is more work to be done version 0.3b works pretty well in Wordpress 2.9.2 and under the IE7, Firefox and Chrome browsers. I can put a slider into a post or page with a short code that looks like this: [bxslider] if I make the content conform to defaults and I don&#8217;t have to touch the theme at all. I can make a slider out of just about any content I want too.</p>
<p>So where does the project go from here? Right now placing more than a single slider on one page creates errors due to the way my plugin works with the jQuery code. I am looking into ways to allow this in the future. I&#8217;m thinking that future versions will allow you to pull slider content from other posts and even sub-pages of a given page. For now though I have a client site that needs some sliders.</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F04%2Fbxslider-for-wordpress%2F&amp;title=A+Slider+Plugin+for+Wordpress"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F04%2Fbxslider-for-wordpress%2F&amp;title=A+Slider+Plugin+for+Wordpress"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F04%2Fbxslider-for-wordpress%2F&amp;title=A+Slider+Plugin+for+Wordpress"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F04%2Fbxslider-for-wordpress%2F&amp;headline=A+Slider+Plugin+for+Wordpress"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=A+Slider+Plugin+for+Wordpress&amp;url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F04%2Fbxslider-for-wordpress%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=A+Slider+Plugin+for+Wordpress&amp;u=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F04%2Fbxslider-for-wordpress%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=A+Slider+Plugin+for+Wordpress&amp;url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F04%2Fbxslider-for-wordpress%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=A+Slider+Plugin+for+Wordpress&amp;url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F04%2Fbxslider-for-wordpress%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=A+Slider+Plugin+for+Wordpress&amp;url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F04%2Fbxslider-for-wordpress%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F04%2Fbxslider-for-wordpress%2F&amp;title=A+Slider+Plugin+for+Wordpress&amp;summary=&amp;source="><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F04%2Fbxslider-for-wordpress%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F04%2Fbxslider-for-wordpress%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/buzz/post?url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F04%2Fbxslider-for-wordpress%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://sandbox.trilogicllc.com/2010/04/bxslider-for-wordpress/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Columns, columns, get your columns here</title>
		<link>http://sandbox.trilogicllc.com/2010/03/get-your-columns-here/</link>
		<comments>http://sandbox.trilogicllc.com/2010/03/get-your-columns-here/#comments</comments>
		<pubDate>Sat, 27 Mar 2010 04:04:29 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Text Processing]]></category>
		<category><![CDATA[columns]]></category>

		<guid isPermaLink="false">http://sandbox.trilogicllc.com/?p=173</guid>
		<description><![CDATA[If you&#8217;ve ever wanted to import column based data from a file only to find that the columns varied on each and every &#8220;page&#8221; of data you know how frustrating it can be to write code to handle all the bizarre contingencies that may arise.  You might be presented with this problem when you&#8217;re asked to read data [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;ve ever wanted to import column based data from a file only to find that the columns varied on each and every &#8220;page&#8221; of data you know how frustrating it can be to write code to handle all the bizarre contingencies that may arise.  You might be presented with this problem when you&#8217;re asked to read data that has been scanned from an image or converted from some other format like an Adobe PDF.<span id="more-173"></span></p>
<p>At one time I was importing multiple columns of phone book data from all over the country and as you would expect all of the documents were different.  I became very good at normalizing data files using a text editor with regular expressions but the documents that were extracts from PDFs always caused me the most grief.</p>
<p>Even though each extracted PDF page had the same number of columns those columns varied widely from page to page. Page numbers in the left and right margins had to be excluded from column computation and the columns varied in position, size and inter-column spacing making the problem even more difficult.</p>
<p>So just how do you import columns of data when you don&#8217;t know where the data is on a per page basis and the document may havewell over 500 pages?  To solve this problem I wrote the ColumnFinder (CF) Class in C# to locate columns on a page.  It requires that you adjust some properties and sample some or all of the lines each &#8220;page&#8221; and submit them to the CF instance. In return CF will tell you where the logical columns for that page are.  It&#8217;s smart enough to locate columns of data even when the data within the column wanders within a few characters.  While you may have to trim whitespace on the beginning or end of a column&#8217;s data at least you won&#8217;t be losing valuable data that may lie beyond where the majority of data lies.</p>
<p>To use CF you need to read a healthy sampling of lines from your text stream to locate the columns.  Sometimes you may want to sample all the lines of each page.  In some extreme cases you might also want to submit them in reverse order.</p>
<p>Back in the day I had a small application that read a config file that contained suggested number of columns, column hints, as well as hints on what constituted the beginning and the end of the pages data to account for headers and footers.  The result of running this app was a normalized extract of previously very messy data.  You can find the source code to the ColumnFinder class in the downloads section.</p>
<p>Enjoy!</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F03%2Fget-your-columns-here%2F&amp;title=Columns%2C+columns%2C+get+your+columns+here"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F03%2Fget-your-columns-here%2F&amp;title=Columns%2C+columns%2C+get+your+columns+here"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F03%2Fget-your-columns-here%2F&amp;title=Columns%2C+columns%2C+get+your+columns+here"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F03%2Fget-your-columns-here%2F&amp;headline=Columns%2C+columns%2C+get+your+columns+here"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Columns%2C+columns%2C+get+your+columns+here&amp;url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F03%2Fget-your-columns-here%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Columns%2C+columns%2C+get+your+columns+here&amp;u=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F03%2Fget-your-columns-here%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Columns%2C+columns%2C+get+your+columns+here&amp;url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F03%2Fget-your-columns-here%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Columns%2C+columns%2C+get+your+columns+here&amp;url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F03%2Fget-your-columns-here%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Columns%2C+columns%2C+get+your+columns+here&amp;url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F03%2Fget-your-columns-here%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F03%2Fget-your-columns-here%2F&amp;title=Columns%2C+columns%2C+get+your+columns+here&amp;summary=&amp;source="><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F03%2Fget-your-columns-here%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F03%2Fget-your-columns-here%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/buzz/post?url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F03%2Fget-your-columns-here%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://sandbox.trilogicllc.com/2010/03/get-your-columns-here/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ASP Form Obfuscation</title>
		<link>http://sandbox.trilogicllc.com/2010/03/asp-form-obfuscation/</link>
		<comments>http://sandbox.trilogicllc.com/2010/03/asp-form-obfuscation/#comments</comments>
		<pubDate>Fri, 05 Mar 2010 05:59:34 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Classic ASP]]></category>
		<category><![CDATA[forms]]></category>
		<category><![CDATA[nobots]]></category>
		<category><![CDATA[obfuscation]]></category>

		<guid isPermaLink="false">http://sandbox.trilogicllc.com/?p=131</guid>
		<description><![CDATA[Some time ago I received an email from a scammer looking to hijack my paypal account.  I could tell that the URLs had nothing to do with PayPal but visually the phishing website itself was a dead ringer.  I wondered just how many of the innocent unaware this filthy coward would steal from [...]]]></description>
			<content:encoded><![CDATA[<p>Some time ago I received an email from a scammer looking to hijack my paypal account.  I could tell that the URLs had nothing to do with PayPal but visually the phishing website itself was a dead ringer.  I wondered just how many of the innocent unaware this filthy coward would steal from before he was stopped.  I think thieves are the worst sort of people and they disgust me so I threw together a quick VB6 application that generated some very real looking data and posted it to the website though Internet Explorer as fast as the site would accept it.  Shortly after I hammered 275,000+ form submissions in the site went offline.  While Scammer Hammer will never make it to the downloads section the Classic ASP project it inspired can already be found there.<span id="more-131"></span></p>
<p>I had discovered that it was pretty easy to write a script to fill up a database.  I didn&#8217;t want anyone doing the same to any legitimate form I put online so I wrote an ASP based form obfuscator to prevent such nastiness from happening to me.</p>
<p>Enter Nobots.</p>
<p>Nobots is a VBScript class designed to let you name your form and input elements dynamically.  So name=&#8221;login&#8221; becomes name=&#8221;F02421&#8243; and name=&#8221;passwd&#8221; becomes name=&#8221;X5543&#8243;.  Even the submit button gets a new random name and/or id.  The mapping of the input elements real names to dynamic names is stored in an encrypted hidden input called &#8220;xref&#8221; that gets submitted along with the form.</p>
<p>Processing goes something like this:  When the user requests the page the input element names are added to the Nobots instance and as each one is added you get the dynamic name/id of that element to write into your form.  Finally you write the nobots xref hidden imput (or store it in session) and close your form.</p>
<p>An automated client will NEVER see the same set of inputs twice &#8211; nor the same input form either.  Unless you can decode the xref field it is almost impossible to automate form data submission against the form in any meaningful way because the input names change every time.  You can prevent bot writers from using one &#8220;set&#8221; of nobots field names by adding a random number or time stamp key to the xref value each time and then comparing it to a value in session when the form is submitted &#8211; if they don&#8217;t match chances are it&#8217;s a hacking attempt.</p>
<p>Of course no system is unbeatable.  A hacker can simply drive your form through Internet Explorer and fill in the text fields positionally and even clicking your submit button based upon the button&#8217;s text.  But there&#8217;s more effort involved and there are easier targets than an obfuscated form to hack.  Combine Nobots with a decent Captcha and delay script and it can go a long way to preventing hackers and bogus data attacks.  If nothing else it will keep away the script kiddies.</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F03%2Fasp-form-obfuscation%2F&amp;title=ASP+Form+Obfuscation"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F03%2Fasp-form-obfuscation%2F&amp;title=ASP+Form+Obfuscation"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F03%2Fasp-form-obfuscation%2F&amp;title=ASP+Form+Obfuscation"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F03%2Fasp-form-obfuscation%2F&amp;headline=ASP+Form+Obfuscation"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=ASP+Form+Obfuscation&amp;url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F03%2Fasp-form-obfuscation%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=ASP+Form+Obfuscation&amp;u=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F03%2Fasp-form-obfuscation%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=ASP+Form+Obfuscation&amp;url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F03%2Fasp-form-obfuscation%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=ASP+Form+Obfuscation&amp;url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F03%2Fasp-form-obfuscation%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=ASP+Form+Obfuscation&amp;url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F03%2Fasp-form-obfuscation%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F03%2Fasp-form-obfuscation%2F&amp;title=ASP+Form+Obfuscation&amp;summary=&amp;source="><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F03%2Fasp-form-obfuscation%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F03%2Fasp-form-obfuscation%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/buzz/post?url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F03%2Fasp-form-obfuscation%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://sandbox.trilogicllc.com/2010/03/asp-form-obfuscation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Scripting in Ancient Java</title>
		<link>http://sandbox.trilogicllc.com/2010/03/amoeba-java/</link>
		<comments>http://sandbox.trilogicllc.com/2010/03/amoeba-java/#comments</comments>
		<pubDate>Wed, 03 Mar 2010 23:22:07 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>
		<category><![CDATA[Applets]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[scripting]]></category>
		<category><![CDATA[Tcl]]></category>

		<guid isPermaLink="false">http://sandbox.trilogicllc.com/?p=119</guid>
		<description><![CDATA[When Java Applets where all the rage I had the opportunity to work in a startup shop in Coralville, Iowa where Java was THE official language. Other than the stock charting server DLL I wrote in C/C++ you didn&#8217;t use Microsoft for web development you used Java.
In response to seeing the official configuration scripting used [...]]]></description>
			<content:encoded><![CDATA[<p>When Java Applets where all the rage I had the opportunity to work in a startup shop in Coralville, Iowa where Java was THE official language. Other than the stock charting server DLL I wrote in C/C++ you didn&#8217;t use Microsoft for web development you used Java.<span id="more-119"></span></p>
<p>In response to seeing the official configuration scripting used by one of our applets I went home and spent a couple of hours writing a quickie script engine of my own. Keep in mind that this was before inner classes and introspection were being dreamed up by Sun. I don&#8217;t remember exactly why but I named it &#8216;Amoeba&#8217;. It is based on Tcl version 7.4 and shared the same sort of free-flow syntax. Simplistic as it was it was still far more flexible than the scripting we had in place. It was never adopted. Sometimes it&#8217;s easier to go down with the ship than change the status quo.</p>
<p>~A</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F03%2Famoeba-java%2F&amp;title=Scripting+in+Ancient+Java"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F03%2Famoeba-java%2F&amp;title=Scripting+in+Ancient+Java"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F03%2Famoeba-java%2F&amp;title=Scripting+in+Ancient+Java"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F03%2Famoeba-java%2F&amp;headline=Scripting+in+Ancient+Java"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Scripting+in+Ancient+Java&amp;url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F03%2Famoeba-java%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Scripting+in+Ancient+Java&amp;u=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F03%2Famoeba-java%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Scripting+in+Ancient+Java&amp;url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F03%2Famoeba-java%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Scripting+in+Ancient+Java&amp;url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F03%2Famoeba-java%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Scripting+in+Ancient+Java&amp;url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F03%2Famoeba-java%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F03%2Famoeba-java%2F&amp;title=Scripting+in+Ancient+Java&amp;summary=&amp;source="><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F03%2Famoeba-java%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F03%2Famoeba-java%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/buzz/post?url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F03%2Famoeba-java%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://sandbox.trilogicllc.com/2010/03/amoeba-java/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Regular Expressions in Visual Basic 4</title>
		<link>http://sandbox.trilogicllc.com/2010/03/regular-expressions-in-visual-basic-4/</link>
		<comments>http://sandbox.trilogicllc.com/2010/03/regular-expressions-in-visual-basic-4/#comments</comments>
		<pubDate>Wed, 03 Mar 2010 22:43:31 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Visual Basic 6]]></category>
		<category><![CDATA[PatterPro]]></category>
		<category><![CDATA[regex]]></category>

		<guid isPermaLink="false">http://sandbox.trilogicllc.com/?p=99</guid>
		<description><![CDATA[Way back in 1998 (the days of Visual Basic 4) I found myself needing an integrated solution to pattern matching.  Prior to this I had learned regular expressions from a brief stint in a multiplatform programming shop where the all work was done on Solaris workstations.  Unfortunately not much was available to the [...]]]></description>
			<content:encoded><![CDATA[<p>Way back in 1998 (the days of Visual Basic 4) I found myself needing an integrated solution to pattern matching.  Prior to this I had learned regular expressions from a brief stint in a multiplatform programming shop where the all work was done on Solaris workstations.  Unfortunately not much was available to the VB4 programmer who wanted regular expression matching &#8211; especially if that matching was required to take place on executables targeted at 16 bit Windows for Workgroups (3.1) and on the newly minted 32 bit Windows95b.<span id="more-99"></span></p>
<p>Visual Basic 4 was the first version to support any type of objects.  They weren&#8217;t real objects like C++ objects but they could act like objects.  At least they had some degreee of polymorphism which was all I needed to get started.  In early 1999 I completed <strong>PatterProRXE</strong>.  Although it was not the fastest Regex Engine in the world it was very handy to have and it&#8217;s matching capability beat the builtin &#8216;Like&#8217; operator hands down.  It fully supported the regular expression syntax of the scanner generator &#8216;Lex&#8217;.</p>
<p>As a curiosity it is probably the only Regular Expression Engine to have been written in the Visual Basic 4, 5, 6 genre in the entire known world.  The project also contains another interesting class that functions as a multi-state scanner/tokenizer.  This was the foundation of a template based Scanner Generator for Visual Basic 5 known briefly as &#8216;ScanGen&#8217;.</p>
<p>You can find the code in the downloads section under PatternProRXE_VB6.  Yes, I eventually ported the code to C# and there are older versions of this code on SourceForge.net.</p>
<p>~A</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F03%2Fregular-expressions-in-visual-basic-4%2F&amp;title=Regular+Expressions+in+Visual+Basic+4"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F03%2Fregular-expressions-in-visual-basic-4%2F&amp;title=Regular+Expressions+in+Visual+Basic+4"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F03%2Fregular-expressions-in-visual-basic-4%2F&amp;title=Regular+Expressions+in+Visual+Basic+4"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F03%2Fregular-expressions-in-visual-basic-4%2F&amp;headline=Regular+Expressions+in+Visual+Basic+4"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Regular+Expressions+in+Visual+Basic+4&amp;url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F03%2Fregular-expressions-in-visual-basic-4%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Regular+Expressions+in+Visual+Basic+4&amp;u=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F03%2Fregular-expressions-in-visual-basic-4%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Regular+Expressions+in+Visual+Basic+4&amp;url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F03%2Fregular-expressions-in-visual-basic-4%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Regular+Expressions+in+Visual+Basic+4&amp;url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F03%2Fregular-expressions-in-visual-basic-4%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Regular+Expressions+in+Visual+Basic+4&amp;url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F03%2Fregular-expressions-in-visual-basic-4%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F03%2Fregular-expressions-in-visual-basic-4%2F&amp;title=Regular+Expressions+in+Visual+Basic+4&amp;summary=&amp;source="><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F03%2Fregular-expressions-in-visual-basic-4%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F03%2Fregular-expressions-in-visual-basic-4%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/buzz/post?url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F03%2Fregular-expressions-in-visual-basic-4%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://sandbox.trilogicllc.com/2010/03/regular-expressions-in-visual-basic-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>URL Encoder for Visual Basic 6</title>
		<link>http://sandbox.trilogicllc.com/2010/03/url-encoder-for-visual-basic-6/</link>
		<comments>http://sandbox.trilogicllc.com/2010/03/url-encoder-for-visual-basic-6/#comments</comments>
		<pubDate>Wed, 03 Mar 2010 21:58:49 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Classic ASP]]></category>
		<category><![CDATA[Visual Basic 6]]></category>
		<category><![CDATA[Bit.ly]]></category>
		<category><![CDATA[Shorter URL]]></category>
		<category><![CDATA[TinyURL.com]]></category>
		<category><![CDATA[URL Encoder]]></category>

		<guid isPermaLink="false">http://sandbox.trilogicllc.com/?p=88</guid>
		<description><![CDATA[Did you ever consider how URL redirection services like TinyURL and Bit.ly encode your URL?  A few years ago I was asked to frame up an encoder that could be translated to Classic ASP for use in just such as service.
As you might guess every URL submitted to such a service is stored in a MySQL, [...]]]></description>
			<content:encoded><![CDATA[<p>Did you ever consider how URL redirection services like TinyURL and Bit.ly encode your URL?  A few years ago I was asked to frame up an encoder that could be translated to Classic ASP for use in just such as service.<span id="more-88"></span></p>
<p>As you might guess every URL submitted to such a service is stored in a MySQL, SQL Server, Postgres or even SQLite database.  Each URL is stored in it&#8217;s own row in the database and is assigned a unique ID.  If the URL is not assigned a specific short code by the owner then the service computes a short code based upon the row ID.</p>
<p>When a request comes in the short code is extracted from the request URL.  The code is either a user specified short code or it is the encoded row ID and it is used to find the real URL being requested by the client browser.</p>
<p>EncodeURL_VB6 is small VB project contains a class that can encode or decode URL codes in base 10, base 36, and base62.  It also comes with a form for testing.  You can find the source in the downloads section.  Enjoy!</p>
<p>~A</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F03%2Furl-encoder-for-visual-basic-6%2F&amp;title=URL+Encoder+for+Visual+Basic+6"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F03%2Furl-encoder-for-visual-basic-6%2F&amp;title=URL+Encoder+for+Visual+Basic+6"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F03%2Furl-encoder-for-visual-basic-6%2F&amp;title=URL+Encoder+for+Visual+Basic+6"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F03%2Furl-encoder-for-visual-basic-6%2F&amp;headline=URL+Encoder+for+Visual+Basic+6"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=URL+Encoder+for+Visual+Basic+6&amp;url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F03%2Furl-encoder-for-visual-basic-6%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=URL+Encoder+for+Visual+Basic+6&amp;u=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F03%2Furl-encoder-for-visual-basic-6%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=URL+Encoder+for+Visual+Basic+6&amp;url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F03%2Furl-encoder-for-visual-basic-6%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=URL+Encoder+for+Visual+Basic+6&amp;url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F03%2Furl-encoder-for-visual-basic-6%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=URL+Encoder+for+Visual+Basic+6&amp;url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F03%2Furl-encoder-for-visual-basic-6%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F03%2Furl-encoder-for-visual-basic-6%2F&amp;title=URL+Encoder+for+Visual+Basic+6&amp;summary=&amp;source="><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F03%2Furl-encoder-for-visual-basic-6%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F03%2Furl-encoder-for-visual-basic-6%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/buzz/post?url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F03%2Furl-encoder-for-visual-basic-6%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://sandbox.trilogicllc.com/2010/03/url-encoder-for-visual-basic-6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>KudzuASP: Template Engine for ASP</title>
		<link>http://sandbox.trilogicllc.com/2010/02/kudzuasp/</link>
		<comments>http://sandbox.trilogicllc.com/2010/02/kudzuasp/#comments</comments>
		<pubDate>Sat, 27 Feb 2010 03:08:43 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Classic ASP]]></category>
		<category><![CDATA[Active Server Pages]]></category>
		<category><![CDATA[Class ASP]]></category>
		<category><![CDATA[HTML Template]]></category>
		<category><![CDATA[KudzuASP]]></category>
		<category><![CDATA[N-Tier]]></category>
		<category><![CDATA[Template]]></category>
		<category><![CDATA[template engine]]></category>

		<guid isPermaLink="false">http://sandbox.trilogicllc.com/?p=70</guid>
		<description><![CDATA[If you ever tried skinning/templating a web application in Classic ASP you&#8217;ll know the challenges involved.  Separating the business logic from the presentation code resulted in some bizarre design and not doing so was a sure road to insanity.  Many people tried a lot of crazy things to accomplish the end result.  [...]]]></description>
			<content:encoded><![CDATA[<p>If you ever tried skinning/templating a web application in Classic ASP you&#8217;ll know the challenges involved.  Separating the business logic from the presentation code resulted in some bizarre design and not doing so was a sure road to insanity.  Many people tried a lot of crazy things to accomplish the end result.  Some of them were successful and some were not.</p>
<p>KudzuASP is the result of the desire to write ASP pages without including any HTML within ASP script code.<span id="more-70"></span>  KudzuASP lets you do this more easily that you&#8217;d imagine.  You really can have an ASP page that is 100% code and your output template can be an HTML document, an XML document, plain text &#8211; whatever.  Choose your output based on time of day, season of the year, client OS, browser, RSS request or whatever else happens to suit you or your client.</p>
<p>The following criteria that guided the overall design:</p>
<ul>
<li>Must provide for complete separation of Script and HTML</li>
<li>Must be easily extensible without editing the original code</li>
<li>Must be easy to use</li>
<li>Must be fast</li>
<li>Must insure the template is loosely coupled to the code &#8211; that is the template drives the layout and not the page which invokes it.</li>
</ul>
<p><strong>KudzuASP allows you 100% separation of HTML and Script:</strong>  One may argue that the template tags are code in the HTML but ANY attempt to separate code and HTML generates tags of some sort.  The examples included in the download will prove my point if you&#8217;re inclined to disbelief.</p>
<p><strong>KudzuASP is easily extensible:</strong>  The tag handlers are small VBScript classes that act upon specific nodes from the template and the HTML that lies between them.  This means that you can extend the template engine by writing you own class (like a menu writer) and then add it to the class.  Thanks to ASP scoping rules your extension classes have access to the hosting ASP page functions and variables &#8211; very handy.  </p>
<p><strong>KudzuASP is also easy to use:</strong>  Once you start to use the template engine you&#8217;ll begin to wonder how you ever coded any ASP pages without it.  You can output a simple HTML template in only three lines of Script code.</p>
<p><strong>KudzuASP is fast:</strong>  The use of classes also prevents you from having to use Eval( ) which is an expensive operation.  Using KudzuASP often reduces the time it takes to write an ASP page.  It absolutely reduces the time it takes to re-skin a web application.</p>
<p><strong>KudzuASP is event driven:</strong>  It&#8217;s the only template engine for ASP where the template drives the ASP page that hosts it.  Once the engine is invoked to generate output it assumes control &#8211; calling the functions and methods in order.  This means that your ASP page is responding to events in the engine.  This means that your ASP page does not have to be fully aware of the structure of the template.  So if you move the web page&#8217;s Side Panel to the right after your Content Panel you won&#8217;t have to modify any Script code &#8211; it just happens.</p>
<p><strong>KudzuASP is flexible:</strong> You can output XML documents, plain text documents &#8211; anything.  You can install your own output class and KudzuASP will write output there and not to the response.  Generate targeted emails, e-commerce orders or anything else you might need.  If you ever thought master pages was only for ASP.NET you&#8217;ll be pleasantly surprised.</p>
<p>So if you&#8217;re still writing and maintaining Classic ASP you&#8217;ll want to check out KudzuASP.  It will definitely save you time and it might even save your sanity. </p>
<p>~A</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F02%2Fkudzuasp%2F&amp;title=KudzuASP%3A+Template+Engine+for+ASP"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F02%2Fkudzuasp%2F&amp;title=KudzuASP%3A+Template+Engine+for+ASP"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F02%2Fkudzuasp%2F&amp;title=KudzuASP%3A+Template+Engine+for+ASP"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F02%2Fkudzuasp%2F&amp;headline=KudzuASP%3A+Template+Engine+for+ASP"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=KudzuASP%3A+Template+Engine+for+ASP&amp;url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F02%2Fkudzuasp%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=KudzuASP%3A+Template+Engine+for+ASP&amp;u=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F02%2Fkudzuasp%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=KudzuASP%3A+Template+Engine+for+ASP&amp;url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F02%2Fkudzuasp%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=KudzuASP%3A+Template+Engine+for+ASP&amp;url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F02%2Fkudzuasp%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=KudzuASP%3A+Template+Engine+for+ASP&amp;url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F02%2Fkudzuasp%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F02%2Fkudzuasp%2F&amp;title=KudzuASP%3A+Template+Engine+for+ASP&amp;summary=&amp;source="><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F02%2Fkudzuasp%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F02%2Fkudzuasp%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/buzz/post?url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F02%2Fkudzuasp%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://sandbox.trilogicllc.com/2010/02/kudzuasp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>KudzuPHP &#8211; Another PHP Template Engine</title>
		<link>http://sandbox.trilogicllc.com/2010/02/kudzuphp/</link>
		<comments>http://sandbox.trilogicllc.com/2010/02/kudzuphp/#comments</comments>
		<pubDate>Thu, 25 Feb 2010 05:32:11 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://sandbox.trilogicllc.com/?p=54</guid>
		<description><![CDATA[Well I finally got around to it.  In an attempt to learn a little more about the bizarre world of PHP programming I converted an existing project based in Classic ASP to PHP.  As you can guess by the title of my post the result of my recent efforts is the conversion of the KudzuASP Template [...]]]></description>
			<content:encoded><![CDATA[<p>Well I finally got around to it.  In an attempt to learn a little more about the bizarre world of PHP programming I converted an existing project based in Classic ASP to PHP.  As you can guess by the title of my post the result of my recent efforts is the conversion of the KudzuASP Template Engine to KudzuPHP.  As it turns out the conversion wasn&#8217;t so very difficult and the resulting PHP code is probably more powerful than the original ASP from which it came.<span id="more-54"></span></p>
<p>I tried to be clear and concise in providing a well architected and open code framework but I&#8217;ll offer my apologies for any shortcomings in advance.  I never thought I&#8217;d be a PHP programmer and I&#8217;m really not claiming to be one now.</p>
<p>So what&#8217;s the deal and why bother with another template engine for any web language much less PHP for which there seem to be dozens already?  I have no answer to offer other than &#8220;just because&#8221;.   Perhaps I&#8217;m just avoiding the need to step outside my comfort zone by sticking with what I already know or it might be that I like the design of the original ASP code that makes the hosting page an event driven resource of the template.  It could be that now I&#8217;m working with Wordpress more than Classic ASP or .NET that it might come in handy.  Who knows?</p>
<p>If you&#8217;re interested browse over to the new sub-domain <a title="KidzuPHP - A Template Engine" href="http://kudzuphp.trilogicllc.com/" target="_blank">KudzuPHP.TriLogicLLC.com</a> and check out the examples.  If you interested in getting your hands on the 600 or so lines of code before I finish cleaning up the examples then drop me a line and L&#8217;ll email it to you.  The download will be eventually be offered here at the sandbox if you&#8217;re the patient type.</p>
<p>~A</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F02%2Fkudzuphp%2F&amp;title=KudzuPHP+-+Another+PHP+Template+Engine"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F02%2Fkudzuphp%2F&amp;title=KudzuPHP+-+Another+PHP+Template+Engine"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F02%2Fkudzuphp%2F&amp;title=KudzuPHP+-+Another+PHP+Template+Engine"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F02%2Fkudzuphp%2F&amp;headline=KudzuPHP+-+Another+PHP+Template+Engine"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=KudzuPHP+-+Another+PHP+Template+Engine&amp;url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F02%2Fkudzuphp%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=KudzuPHP+-+Another+PHP+Template+Engine&amp;u=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F02%2Fkudzuphp%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=KudzuPHP+-+Another+PHP+Template+Engine&amp;url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F02%2Fkudzuphp%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=KudzuPHP+-+Another+PHP+Template+Engine&amp;url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F02%2Fkudzuphp%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=KudzuPHP+-+Another+PHP+Template+Engine&amp;url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F02%2Fkudzuphp%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F02%2Fkudzuphp%2F&amp;title=KudzuPHP+-+Another+PHP+Template+Engine&amp;summary=&amp;source="><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F02%2Fkudzuphp%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F02%2Fkudzuphp%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/buzz/post?url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F02%2Fkudzuphp%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://sandbox.trilogicllc.com/2010/02/kudzuphp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Plugins for Classic ASP</title>
		<link>http://sandbox.trilogicllc.com/2010/01/plugins-for-classic-asp/</link>
		<comments>http://sandbox.trilogicllc.com/2010/01/plugins-for-classic-asp/#comments</comments>
		<pubDate>Wed, 20 Jan 2010 02:20:41 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Classic ASP]]></category>
		<category><![CDATA[ASP]]></category>
		<category><![CDATA[KudzuASP]]></category>
		<category><![CDATA[Plugin]]></category>

		<guid isPermaLink="false">http://sandbox.trilogicllc.com/?p=28</guid>
		<description><![CDATA[While Classic ASP was on it&#8217;s way out the door to make room for ASP.net I was still trying to see how far I could push the VB Script engine using classes.  About a year ago I was discussing with a fellow programmer how components work in KudzuASP when it occurred to me that [...]]]></description>
			<content:encoded><![CDATA[<p>While Classic ASP was on it&#8217;s way out the door to make room for ASP.net I was still trying to see how far I could push the VB Script engine using classes.  About a year ago I was discussing with a fellow programmer how components work in KudzuASP when it occurred to me that I could write an extensible plugin architecture for any ASP page using much the same architecture as KudzuASP.<span id="more-28"></span></p>
<p>While the resulting code can be used as part of KudzuASP it can also be embedded in any ASP page.  This code allows you to dynamically add modular plugins at runtime &#8211; like a dynamic include.  You can load large blocks of code on the fly and then execute the functionality when and where you choose.  I use an object oriented design so that you can use the functionality of the individual plugins without really knowing the code structure of the plugins or what they do.</p>
<p>Those familiar with KudzuASP will notice the similarities and be able to integrate it so that missing Kudzu Tag Handlers are dynamically loaded rather than throwing an error.</p>
<p>I&#8217;ve just uploaded this code to the site and made it available in the downloads section.  Enjoy!</p>
<p>~A</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F01%2Fplugins-for-classic-asp%2F&amp;title=Plugins+for+Classic+ASP"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F01%2Fplugins-for-classic-asp%2F&amp;title=Plugins+for+Classic+ASP"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F01%2Fplugins-for-classic-asp%2F&amp;title=Plugins+for+Classic+ASP"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F01%2Fplugins-for-classic-asp%2F&amp;headline=Plugins+for+Classic+ASP"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Plugins+for+Classic+ASP&amp;url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F01%2Fplugins-for-classic-asp%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Plugins+for+Classic+ASP&amp;u=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F01%2Fplugins-for-classic-asp%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Plugins+for+Classic+ASP&amp;url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F01%2Fplugins-for-classic-asp%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Plugins+for+Classic+ASP&amp;url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F01%2Fplugins-for-classic-asp%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Plugins+for+Classic+ASP&amp;url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F01%2Fplugins-for-classic-asp%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F01%2Fplugins-for-classic-asp%2F&amp;title=Plugins+for+Classic+ASP&amp;summary=&amp;source="><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F01%2Fplugins-for-classic-asp%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F01%2Fplugins-for-classic-asp%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/buzz/post?url=http%3A%2F%2Fsandbox.trilogicllc.com%2F2010%2F01%2Fplugins-for-classic-asp%2F"><img class="lightsocial_img" src="http://sandbox.trilogicllc.com/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://sandbox.trilogicllc.com/2010/01/plugins-for-classic-asp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
