<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:cc="http://web.resource.org/cc/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" version="2.0">

			<channel>
			<title>dans.blog</title>
			<link>http://blog.pengoworks.com/index.cfm</link>
			<description>This blog contains the miscellaneous ramblings, thoughts and interests of Dan G. Switzer, II.</description>
			<language>en-us</language>
			<pubDate>Sat, 04 Jul 2009 12:09:37 -0400</pubDate>
			<lastBuildDate>Mon, 22 Jun 2009 18:45:19 -0400</lastBuildDate>
			<generator>BlogCFC</generator>
			<docs>http://blogs.law.harvard.edu/tech/rss</docs>
			<managingEditor>dswitzer@pengoworks.com</managingEditor>
			<webMaster>dswitzer@pengoworks.com</webMaster>
			<itunes:subtitle />
			<itunes:summary />
			<itunes:category text="Technology" />
			<itunes:category text="Technology">
				<itunes:category text="Podcasting" />
			</itunes:category>
			<itunes:category text="Technology">
				<itunes:category text="Tech News" />
			</itunes:category>
			<itunes:keywords />
			<itunes:author />
			<itunes:owner>
				<itunes:email>dswitzer@pengoworks.com</itunes:email>
				<itunes:name />
			</itunes:owner>
			<itunes:image href="" />
			<image>
				<url />
				<title>dans.blog</title>
				<link>http://blog.pengoworks.com/index.cfm</link>
			</image>
			<itunes:explicit>no</itunes:explicit>
			
			
			
			
			
			<geo:lat>40.021665</geo:lat><geo:long>-83.14762</geo:long><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/pengoblog" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
				<title>My lab 16 months after double bilateral TTA&amp;hellip;</title>
				<link>http://blog.pengoworks.com/index.cfm/2009/6/22/My-lab-16-months-after-double-bilateral-TTA</link>
				<description>&lt;p&gt;In February 2008, our black lab (then just 4 years old) was in pretty bad shape. Both of her rear knees had gotten so bad she &lt;a href="http://blog.pengoworks.com/index.cfm/2008/2/12/My-poor-NikNiks" target="_blank"&gt;basically could no longer walk&lt;/a&gt;. We decided to proceed with a &lt;a href="http://www.ncbi.nlm.nih.gov/pubmed/17143394"&gt;bilateral TTA (tibial tuberosity advancement)&lt;/a&gt; in both her hind legs. It was a tough decision for us, because it's not a cheap procedure and we weren't sure how we'd manage to keep her constrained for the 11-12 week recoup time. &lt;/p&gt;  &lt;p&gt;I've blogged several times about how successful the operation was. She's really done excellent and there are no real hints of her knees ever bothering her. She'll occasionally get up slowly, but I can't say that's because of the surgery. What I do know is the dog still loves to run and jump. The knee surgery has not slowed her pursuit of climbing trees one bit, so I know she's doing well.&lt;/p&gt;  &lt;p&gt;The other night my wife was playing around w/our new iPhone 3GS that we're trying out and I thought it was a good idea to post a video of her running and playing fetch in our yard. Well the video is not terribly exciting, I thought it might be useful for someone debating on whether or not it's worth the investment of the bilateral TTA procedure. I know in our case w/out the surgery we would have had to put her down&amp;#8212;because she was just in too much pain and it was only going to get worse. So, seeing her run around today still thrills me to no end.&lt;/p&gt;  &lt;p&gt;I try to play ball w/my labs for at least 30 minutes every day (weather pending.) I've run Nikki (our black lab) pretty hard this year and she's held up great. She'll run for as long as I'm willing to throw the ball and I've seen no side effects from the surgery at all. So here's she is doing her favorite activity in the world&amp;#8212;playing fetch:&lt;/p&gt;  &lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/togjs-1HBI8&amp;amp;hl=en&amp;amp;fs=1&amp;amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/togjs-1HBI8&amp;amp;hl=en&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/pengoblog?a=OljIVsBcdm8:K-Lar30ewa0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/pengoblog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/pengoblog?a=OljIVsBcdm8:K-Lar30ewa0:bcOpcFrp8Mo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/pengoblog?d=bcOpcFrp8Mo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
						
				
				<category>Personal</category>				
				
				<pubDate>Mon, 22 Jun 2009 18:45:19 -0400</pubDate>
				<guid>http://blog.pengoworks.com/index.cfm/2009/6/22/My-lab-16-months-after-double-bilateral-TTA</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>Stay w/Verizon Wireless or keep my iPhone 3GS?</title>
				<link>http://blog.pengoworks.com/index.cfm/2009/6/22/Stay-wVerizon-Wireless-or-keep-my-iPhone-3GS</link>
				<description>&lt;p&gt;Ok, so on Friday I decided to pick up an iPhone 3GS to try it out. My Verizon XV6700 really has issues and just is a horrible phone (I can't see the display when outside and also have always had problems hearing the person on the other land if there's any amount of background noise.)&lt;/p&gt;  &lt;p&gt;I've been eligible for my &amp;quot;new every two&amp;quot; for almost a year, but Verizon still hasn't put out a phone I'm completely happy with. Every time I think they might have a winner (like the Storm) it fails.&lt;/p&gt;  &lt;p&gt;So on Friday I was supposed to play golf, but due to some severe storms in the morning my party cancelled the outing (although I did end up playing a round later by myself.) Since I had the day off and nothing to really do, I thought I'd see if the local AT&amp;amp;T had any of the iPhone 3GS' in stock. Sure enough they had several still in stock, so w/my 30 day guarantee, I thought I'd sign up and see how it goes.&lt;/p&gt;  &lt;p&gt;The biggest thing that's held me back from the iPhone is the lack of physical keyboard and AT&amp;amp;T's network (which I keep hearing bad things about.)&lt;/p&gt;  &lt;p&gt;So, over the weekend I did a lot of playing around w/the iPhone. Well there's a lot of stuff I really like, I'm still a bit wary about AT&amp;amp;T's network and I really dislike the software keyboard&amp;#8212;especially since the iPhone seems to require a lot of password typing (I'm sure the whole App Store password re-entry is for security purposes, but when you have a very secure password it's very cumbersome to keep re-typing the password in. Instead of constantly re-typing the password I'd rather be able to disable iPhone access to the App Store via the Preferences in iTunes.)&lt;/p&gt;  &lt;p&gt;Anyway, is AT&amp;amp;T's network really that bad? So far the coverage has seemed ok, although when playing golf Saturday while my bars showed full, the conversation with my wife seemed to be breaking up a lot.&lt;/p&gt;  &lt;p&gt;Should I go ahead and move the wife and me to iPhones and move off VZW?&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/pengoblog?a=1n_MY-COVGw:5dMTYUPGQ3I:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/pengoblog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/pengoblog?a=1n_MY-COVGw:5dMTYUPGQ3I:bcOpcFrp8Mo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/pengoblog?d=bcOpcFrp8Mo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
						
				
				<category>Personal</category>				
				
				<pubDate>Mon, 22 Jun 2009 14:45:27 -0400</pubDate>
				<guid>http://blog.pengoworks.com/index.cfm/2009/6/22/Stay-wVerizon-Wireless-or-keep-my-iPhone-3GS</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>structFilter() UDF - Filtering a structure based upon a regular expression</title>
				<link>http://blog.pengoworks.com/index.cfm/2009/6/17/structFilter-UDF--Filtering-a-structure-based-upon-a-regular-expression</link>
				<description>&lt;p&gt;Today I thought I'd share a little ColdFusion helper function I've been using for years: structFilter(). The structFilter() parses a structure and returns only the keys that match a given regular expression. &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;div class="wlWriterEditableSmartContent" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:81054b5a-20e3-4dae-b096-2419f67b92d2" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre style="background-color:#FFFFFF;overflow: auto;"&gt;&lt;span style="color: #008000;"&gt;&amp;lt;!--&lt;/span&gt;&lt;span style="color: #008000;"&gt;-
 Searches a structure for keys matching a regex and returns a structure containing the
 matched keys.

 @param input        The structure to filter. (struct; required)
 @param regex        The regular expression to filter keys against. (string; required)
 @param useNoCase    Do a case insensitive search? (boolean; default = true)
 @param useDeepCopy  Do a deep copy on the keys? (boolean; default = false)

 @return Returns a structure containing the matching keys.
 @author Dan G. Switzer, II (dan.switzer@givainc.com)
 @version 1, June 17, 2009
-&lt;/span&gt;&lt;span style="color: #008000;"&gt;--&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;cffunction &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="structFilter"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; returntype&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="struct"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; output&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="false"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; access&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="public"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; 
    hint&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="Filters keys in a structure to those matching the regular expression."&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
  &lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;lt;!--&lt;/span&gt;&lt;span style="color: #008000;"&gt;-// define valid arguments //-&lt;/span&gt;&lt;span style="color: #008000;"&gt;--&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
  &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;cfargument &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="input"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; type&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="struct"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; required&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="true"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
  &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;cfargument &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="regex"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; type&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="string"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; required&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="true"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
  &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;cfargument &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="useNoCase"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; type&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="boolean"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; required&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="false"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; default&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="true"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
  &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;cfargument &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="useDeepCopy"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; type&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="boolean"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; required&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="false"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; default&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="false"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
  
  &lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;lt;!--&lt;/span&gt;&lt;span style="color: #008000;"&gt;-// define local variables //-&lt;/span&gt;&lt;span style="color: #008000;"&gt;--&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
  &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;cfset &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;var result &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;= structNew() &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;

  &lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;lt;!--&lt;/span&gt;&lt;span style="color: #008000;"&gt;-// if using NoCase and the (?i) directive doesn't exist, append to regex //-&lt;/span&gt;&lt;span style="color: #008000;"&gt;--&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;  
  &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;cfif &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;arguments.useNoCase and not reFind("^\(\?[mx]*i[mx]*\)", arguments.regex)&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;cfset &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;arguments.regex &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;= "(?i)"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; &amp;amp; arguments.regex &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
  &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;cfif&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;

  &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;cfloop &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;item&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="key"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; collection&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="#arguments.input#"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;cfif &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;reFind(arguments.regex, key)&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
      &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;cfif &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;arguments.useDeepCopy&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;cfset &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;result[key] &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;= duplicate(arguments.input[key]) &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
      &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;cfelse&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;cfset &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;result[key] &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;= arguments.input[key] &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
      &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;cfif&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;cfif&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
  &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;cfloop&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;

  &lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;lt;!--&lt;/span&gt;&lt;span style="color: #008000;"&gt;-// return the new structure //-&lt;/span&gt;&lt;span style="color: #008000;"&gt;--&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;  
  &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;cfreturn &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;result &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;cffunction&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;I've found this helper UDF to be extremely handy in when you have a bunch of serialized form fields that follow a given nomenclature. For example, if you have a bunch of form fields like:&lt;/p&gt;

&lt;div class="wlWriterEditableSmartContent" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:fce01ecb-93e5-4bc8-8574-010a513f47ac" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre style="background-color:#FFFFFF;overflow: auto;"&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;input &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;type&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="text"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; name&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="name"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; value&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;=""&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;input &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;type&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="text"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; name&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="description"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; value&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;=""&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;

&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;lt;!--&lt;/span&gt;&lt;span style="color: #008000;"&gt;-// dynamic list of variables //-&lt;/span&gt;&lt;span style="color: #008000;"&gt;--&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;cfloop &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;index&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="i"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; from&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="1"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; to&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="10"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
  &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;cfoutput&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;input &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;type&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="text"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; name&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="id_#i#"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; value&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;=""&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
  &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;cfoutput&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;cfloop&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;
&lt;/span&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;

&lt;p&gt;Using the structFilter() UDF you can vary easily process all the fields starting with &amp;quot;id_&amp;quot; by doing:&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;div class="wlWriterEditableSmartContent" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:85cdcb38-babf-4b81-9c6b-0c694cf621b6" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre style="background-color:#FFFFFF;overflow: auto;"&gt;&lt;span style="color: #008000;"&gt;&amp;lt;!--&lt;/span&gt;&lt;span style="color: #008000;"&gt;-// 
  get all the fields:
  * starting with "id_"
  * and ending with one or more numbers
//-&lt;/span&gt;&lt;span style="color: #008000;"&gt;--&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;  
&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;cfset &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;stIds &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;= structFilter(form, &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;"^id_\d+$") &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;This will give you a structure containing all the &amp;quot;id_&amp;quot; fields that you can then process in a collection-based loop. This method is much more effective then passing in some kind of hidden &amp;quot;counter&amp;quot; variable where you loop from 1 to the counter variable (which is a technique I've used in the past) as it doesn't rely on the numbers being serialized.&lt;/p&gt;

&lt;p&gt;There are obviously many other uses for this function, but I use it a lot for processing complex forms that have dynamically generated fields that have a fixed nomenclature.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/pengoblog?a=N_tT1R0eBu8:pydff7EFYvQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/pengoblog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/pengoblog?a=N_tT1R0eBu8:pydff7EFYvQ:bcOpcFrp8Mo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/pengoblog?d=bcOpcFrp8Mo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
						
				
				<category>HTML/ColdFusion</category>				
				
				<pubDate>Wed, 17 Jun 2009 10:49:12 -0400</pubDate>
				<guid>http://blog.pengoworks.com/index.cfm/2009/6/17/structFilter-UDF--Filtering-a-structure-based-upon-a-regular-expression</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>Safari 4 z-index issue with Flash</title>
				<link>http://blog.pengoworks.com/index.cfm/2009/6/10/Safari-4-zindex-issue-with-Flash</link>
				<description>&lt;p&gt;I was doing some testing with Safari 4 (on Windows Vista) and noticed that it was running into the z-index issue that's normally fixed by having a wmode attribute. The issue is that Flash was always displaying on top of all other elements. Normally this can be fixed by applying the wmode attribute of either &amp;quot;opaque&amp;quot; or &amp;quot;transparent&amp;quot; to your SWF, however that was already present.&lt;/p&gt;  &lt;p&gt;After playing around with the problem for a good bit trying various solutions of applying an z-index to elements, I decided to check to see if I had the latest version of Flash installed. Turns out I was running Flash 10,0,22,54 and 10,0,22,87 is the latest version. Sure enough, after upgrading Flash everything started working as expected.&lt;/p&gt;  &lt;p&gt;So, if you're having problems with Flash being overlaid over all of your elements in Safari, try upgrading to the latest version of Flash to see if it fixes the problem.&lt;/p&gt;  &lt;p&gt;(To see how things should work, check out &lt;a title="http://pipwerks.com/lab/swfobject/z-index/2.0/dynamic.html" href="http://pipwerks.com/lab/swfobject/z-index/2.0/dynamic.html"&gt;http://pipwerks.com/lab/swfobject/z-index/2.0/dynamic.html&lt;/a&gt;. If mousing over the menu options is not showing some pop-up elements, then something has gone awry&amp;#8212;so try upgrading Flash.)&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/pengoblog?a=ZcJooCgVqOw:qEDGAzxoN_g:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/pengoblog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/pengoblog?a=ZcJooCgVqOw:qEDGAzxoN_g:bcOpcFrp8Mo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/pengoblog?d=bcOpcFrp8Mo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
						
				
				<category>HTML/ColdFusion</category>				
				
				<category>Flex/Flash</category>				
				
				<pubDate>Wed, 10 Jun 2009 16:01:24 -0400</pubDate>
				<guid>http://blog.pengoworks.com/index.cfm/2009/6/10/Safari-4-zindex-issue-with-Flash</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>CFHTTP &amp;quot;Connection Failures&amp;quot; issues when using mod_rewrite</title>
				<link>http://blog.pengoworks.com/index.cfm/2009/6/2/CFHTTP-Connection-Failures-issues-when-using-modrewrite</link>
				<description>&lt;p&gt;Several years ago I ran into some issues with &lt;a href="http://blog.pengoworks.com/index.cfm/2006/3/13/CFHTTP-Connection-Failures-issues-with-Gzip" target="_blank"&gt;CFHTTP giving &amp;quot;Connection Failures&amp;quot; when using GZIP&lt;/a&gt;, but recently I ran into some new &amp;quot;Connection Failures&amp;quot; when using CFHTTP. I recently installed some mod_rewrite rules on our server to:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Redirect naked domains to the www subdomain (i.e. map domain.com to &lt;a href="http://www.domain.com"&gt;www.domain.com&lt;/a&gt;) &lt;/li&gt;    &lt;li&gt;Force SSL &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;My rules were pretty simple and worked great when invoked from the browser, but I quickly realized they were causing issues with CFHTTP.&lt;/p&gt;
				 [More]&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/pengoblog?a=iO-0fHqETAc:IEtlzBhqmKI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/pengoblog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/pengoblog?a=iO-0fHqETAc:IEtlzBhqmKI:bcOpcFrp8Mo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/pengoblog?d=bcOpcFrp8Mo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
						
				
				<category>HTML/ColdFusion</category>				
				
				<pubDate>Tue, 02 Jun 2009 10:51:00 -0400</pubDate>
				<guid>http://blog.pengoworks.com/index.cfm/2009/6/2/CFHTTP-Connection-Failures-issues-when-using-modrewrite</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>Freeing up disk space on your C: drive</title>
				<link>http://blog.pengoworks.com/index.cfm/2009/5/29/Freeing-up-disk-space-on-your-C-drive</link>
				<description>&lt;p&gt;I've been fighting a bit of a battle with my development server. When I originally set up the box, I created the C: partition with a relatively small size based on some performance guidelines I had read. While I had plenty of space when I built the server, the ever growing Windows folder has eventually eaten up all the disc space. The biggest culprit of this being the &lt;samp&gt;C:\Windows\installer&lt;/samp&gt; folder&amp;#8212;which gets larger each time Windows does an update. &lt;/p&gt;  &lt;p&gt;Today I finally had no choice but to do something. There aren't a lot of choices when a system drive is running out of space, you basically can:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Remove unused files&amp;#8212;been there, done that; nothing else to remove&lt;/li&gt;    &lt;li&gt;Backup and reformat&amp;#8212;which is way too big of pain to do&lt;/li&gt;    &lt;li&gt;Use a tool to resize the partition (which only works if your drive has been partitioned into multiple logic drives)&lt;/li&gt;    &lt;li&gt;Move files to a different drive and create a symbolic link (junction) to the folders&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;I thought about going the resizing route, but there's some risk involved and I wanted to minimize the time I was working on this. So I decided to go the junction route.&lt;/p&gt;  &lt;p&gt;Since the &lt;samp&gt;C:\Windows\installer&lt;/samp&gt; folder was without a doubt the folder eating up the majority of disk space for me, I decided to move this folder to another drive. However, there are some caveats of moving the &lt;samp&gt;C:\Windows\installer&lt;/samp&gt; folder where if you don't get the permissions &lt;em&gt;just right&lt;/em&gt;, then Windows will delete the junction and the folder it points to&amp;#8212;where leaves you screwed.&lt;/p&gt;  &lt;p&gt;Fortunately for all of us, &lt;a href="http://prism-it-services.com.au/blog/" target="_blank"&gt;Simon Bailey&lt;/a&gt; has written a nice &lt;a href="http://prism-it-services.com.au/blog/free-up-space-on-your-eee-pc-automated-method/" target="_blank"&gt;batch file you can use to move &lt;samp&gt;C:\Windows\installer&lt;/samp&gt; folder&lt;/a&gt; for you. If you're not interested in the batch file, you can also read his detailed blog post on the &lt;a href="http://prism-it-services.com.au/blog/free-up-space-on-your-eee-pc-c-drive/" target="_blank"&gt;steps for freeing up space on your C: drive&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Now that I've freed up gigabytes of data from my &lt;samp&gt;C:&lt;/samp&gt; drive, my server is happy again&amp;#8212;which makes me happy.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/pengoblog?a=Fq_ibx6MX-o:aOuMfWU4zhI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/pengoblog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/pengoblog?a=Fq_ibx6MX-o:aOuMfWU4zhI:bcOpcFrp8Mo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/pengoblog?d=bcOpcFrp8Mo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
						
				
				<category>Technology</category>				
				
				<pubDate>Fri, 29 May 2009 14:35:46 -0400</pubDate>
				<guid>http://blog.pengoworks.com/index.cfm/2009/5/29/Freeing-up-disk-space-on-your-C-drive</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>Marquee jQuery Plug-in Released!</title>
				<link>http://blog.pengoworks.com/index.cfm/2009/5/20/Marquee-jQuery-Plugin-Released</link>
				<description>&lt;p&gt;My current employer (&lt;a href="http://www.givainc.com/" target="_blank"&gt;Giva, Inc&lt;/a&gt;) has released another jQuery plug-in today called the &lt;a href="http://www.givainc.com/labs/marquee_jquery_plugin.htm" target="_blank"&gt;Marquee jQuery Plug-in&lt;/a&gt;. The jQuery Marquee plug-in converts a list element (&amp;lt;ul /&amp;gt; or &amp;lt;ol /&amp;gt;) into an ESPN-style scrolling marquee. Messages are scrolled in from top or bottom (based on the yScroll option) and longer messages will then ticker to the left in order to show the full message.&lt;/p&gt;  &lt;p&gt;The &lt;a href="http://www.givainc.com/labs/marquee_jquery_plugin.htm" target="_blank"&gt;Marquee jQuery Plug-in&lt;/a&gt; has an &lt;a href="http://www.givainc.com/labs/marquee_jquery_plugin.htm#example" target="_blank"&gt;example&lt;/a&gt; you can look at or you can see several different marquees in different configurations on the &lt;a href="http://www.givainc.com/labs/marquee_example.htm" target="_blank"&gt;Giva Labs - Marquee Example Page&lt;/a&gt;.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/pengoblog?a=yEobvIcMrjs:HIiK2holj28:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/pengoblog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/pengoblog?a=yEobvIcMrjs:HIiK2holj28:bcOpcFrp8Mo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/pengoblog?d=bcOpcFrp8Mo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
						
				
				<category>jQuery</category>				
				
				<pubDate>Wed, 20 May 2009 15:43:02 -0400</pubDate>
				<guid>http://blog.pengoworks.com/index.cfm/2009/5/20/Marquee-jQuery-Plugin-Released</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>Trip to Denver</title>
				<link>http://blog.pengoworks.com/index.cfm/2009/5/20/Trip-to-Denver</link>
				<description>&lt;p&gt;On Monday the wife and I just got back from a short trip out to Denver. We flew out last Thursday to surprise my cousin for his high school graduation. While we weren't able to make it out for the actual ceremony, we had it worked out to surprise him at the restaurant for dinner. &lt;/p&gt;  &lt;p&gt;I had worked out plans with my aunt to keep things as a complete surprise. When he was standing in line, I snuck up behind him patted him on the shoulder and said &amp;quot;I hear congratulations are in order!&amp;quot; The look on his face was priceless when he turned around. You could see the confusion of &amp;quot;Who is this person that looks like my cousin? That can't be him. Why would he be here in Denver?&amp;quot; A true classic. He was speechless for like the first 10 minutes.&lt;/p&gt;  &lt;p&gt;It was a great trip. I've been out to Denver a number of times in the past 25 years, but this was my wife's first trip. In the 5 days we were there we put on 700 miles on the rental car&amp;#8212;but those miles pretty much all came on Friday, Saturday and Sunday. We drove to Boulder a couple of times, Breckenridge, Estes Park and just explored Denver a bit.&lt;/p&gt;  &lt;p&gt;On Saturday, we drove up to Boulder and had lunch at the Walnut Brewing Company&amp;#8212;and they had one of the best fruit salads I've had in a long time. The fruit salad was mixed with a combination of cinnamon, honey, lemon juice and sour cream&amp;#8212;it was really quite tasty.&lt;/p&gt;  &lt;p&gt;After lunch, we drove back to Denver for my cousin's graduation party. My cousin is considerable younger than I am (19 years younger,) so there were always a ton of pictures of the two of us where I'm holding up. Anyway, since he's 6'1&amp;quot; and growing, I figured I better take one last picture before I can't pick him up anymore. :)&lt;/p&gt;  &lt;p&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://photos-b.ak.fbcdn.net/photos-ak-snc1/v3824/183/56/1104062494/n1104062494_30261825_5953188.jpg" /&gt;&lt;/p&gt;  &lt;p&gt;It's so hard for me to believe the baby I remember feeding and playing with is now on his way to college to play Hockey.&lt;/p&gt;  &lt;p&gt;On Sunday we went up to the Rocky Mountain National Park. While the park isn't completely opened up yet, we were able to make it up to 12,000 ft&amp;#8212;so we had a decent view (we couldn't quite make it to the gift shop, the road was closed right before the last leg.) I knew the road would most likely be closed since it wasn't scheduled to be opened up until May 22, but I kept hoping we could make it to the Continental Divide. Alas, it just gives us something to do next time we're in town.&lt;/p&gt;  &lt;p&gt;Anyway, here are a couple of panoramic photos I took and stitched together with Windows Live Photo Gallery&amp;#8212;which does a wonderful job of stitching photos together.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blog.pengoworks.com/enclosures/rocky_pan_2.jpg" target="_blank"&gt;&lt;img title="rocky_pan_2" style="border-right: 0px; border-top: 0px; display: block; float: none; margin: 0px auto 15px; border-left: 0px; border-bottom: 0px" height="91" alt="rocky_pan_2" src="http://blog.pengoworks.com/enclosures/rocky_pan_2_4.jpg" width="644" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blog.pengoworks.com/enclosures/rocky_pan_3.jpg" target="_blank"&gt;&lt;img title="rocky_pan_3" style="border-right: 0px; border-top: 0px; display: block; float: none; margin: 0px auto 15px; border-left: 0px; border-bottom: 0px" height="90" alt="rocky_pan_3" src="http://blog.pengoworks.com/enclosures/rocky_pan_3_3.jpg" width="644" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;It was a great trip and I'm so glad we were able to make it out to see my cousin. &lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/pengoblog?a=deg0Rz1YK8U:LvEMWSxTIUQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/pengoblog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/pengoblog?a=deg0Rz1YK8U:LvEMWSxTIUQ:bcOpcFrp8Mo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/pengoblog?d=bcOpcFrp8Mo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
						
				
				<category>Personal</category>				
				
				<pubDate>Wed, 20 May 2009 11:19:17 -0400</pubDate>
				<guid>http://blog.pengoworks.com/index.cfm/2009/5/20/Trip-to-Denver</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>Logging in to Vista using an administrative share</title>
				<link>http://blog.pengoworks.com/index.cfm/2009/5/12/Logging-in-to-Vista-using-an-administrative-share</link>
				<description>&lt;p&gt;I've recently migrated two of my PCs to Vista. I was trying to wait until Windows 7, but I had to physically replace the boxes so my hand was forced into (yeah, I could have downgraded, but I figured I should actually work with Vista a bit before moving to Windows 7 if for no other reason that to appreciate it more.)&lt;/p&gt;  &lt;p&gt;Anyway, one of the problems I've had was logging into the boxes using the administrative shares. Well this is disabled by default (and for good reason,) I needed a way to access via the shares and came across this article from Microsoft:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://support.microsoft.com/kb/947232" target="_blank"&gt;Error message when you try to access an administrative share on a Windows Vista-based computer from another Windows Vista-based computer that is a member of a workgroup: &amp;quot;Logon unsuccessful: Windows is unable to log you on&amp;quot;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;This has allowed me to access my box from Windows XP and my other Vista boxes when I log in w/admin credentials&amp;#8212;which is exactly what I wanted to do. While this isn't a recommended thing to enable, it seems you can toggle it off/on without rebooting&amp;#8212;which is nice.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/pengoblog?a=_Y33TNDYphM:mjAwlQ3i00w:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/pengoblog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/pengoblog?a=_Y33TNDYphM:mjAwlQ3i00w:bcOpcFrp8Mo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/pengoblog?d=bcOpcFrp8Mo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
						
				
				<category>Potpourri</category>				
				
				<category>Technology</category>				
				
				<pubDate>Tue, 12 May 2009 15:07:02 -0400</pubDate>
				<guid>http://blog.pengoworks.com/index.cfm/2009/5/12/Logging-in-to-Vista-using-an-administrative-share</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>Pagination in MSSQL 2005 with one-to-many joins</title>
				<link>http://blog.pengoworks.com/index.cfm/2009/5/12/Pagination-in-MSSQL-2005-with-onetomany-joins</link>
				<description>&lt;p&gt;I was working on restructuring some old code that needed some pagination. The query in question used a one-to-many join the required information together. Imagine a search engine where you're wanting to search over orders, but want to group the results by customer. The output might look something like:&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="2" width="400" border="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" colspan="2"&gt;&lt;strong&gt;Gary Dell'Abate&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="73"&gt;&amp;#160;&lt;/td&gt;        &lt;td valign="top" width="327"&gt;Order #: 12098&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="73"&gt;&amp;#160;&lt;/td&gt;        &lt;td valign="top" width="327"&gt;Order #: 13232&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="73"&gt;&amp;#160;&lt;/td&gt;        &lt;td valign="top" width="327"&gt;Order #: 14551&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="73"&gt;&amp;#160;&lt;/td&gt;        &lt;td valign="top" width="327"&gt;Order #: 16770&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" colspan="2"&gt;&lt;strong&gt;Fred Norris&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="73"&gt;&amp;#160;&lt;/td&gt;        &lt;td valign="top" width="327"&gt;Order #: 11021&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="73"&gt;&amp;#160;&lt;/td&gt;        &lt;td valign="top" width="327"&gt;Order #: 11029&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" colspan="2"&gt;&lt;strong&gt;Robin Quivers&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="73"&gt;&amp;#160;&lt;/td&gt;        &lt;td valign="top" width="327"&gt;Order #: 10010&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="73"&gt;&amp;#160;&lt;/td&gt;        &lt;td valign="top" width="327"&gt;Order #: 11001&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="73"&gt;&amp;#160;&lt;/td&gt;        &lt;td valign="top" width="327"&gt;Order #: 12001&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" colspan="2"&gt;&lt;strong&gt;Howard Stern&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="73"&gt;&amp;#160;&lt;/td&gt;        &lt;td valign="top" width="327"&gt;Order #: 13001&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;So, in my situation I want to also paginate by the customers. When SQL Server 2005 was introduced, it added a new feature called Common Table Expressions (CTEs.) One of the most useful features of CTEs is to &lt;a href="http://blog.pengoworks.com/index.cfm/2008/6/10/Pagination-your-data-in-MSSQL-2005" target="_blank"&gt;paginate recordsets&lt;/a&gt;. Typically when paginating results, you will use the &lt;samp&gt;row_number()&lt;/samp&gt; function&amp;#8212;which creates a new unique row number for each row in your recordset:&lt;/p&gt;
				 [More]&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/pengoblog?a=YZr3WPvjkGQ:Eq9Fz5oIk74:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/pengoblog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/pengoblog?a=YZr3WPvjkGQ:Eq9Fz5oIk74:bcOpcFrp8Mo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/pengoblog?d=bcOpcFrp8Mo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
						
				
				<category>HTML/ColdFusion</category>				
				
				<category>SQL</category>				
				
				<pubDate>Tue, 12 May 2009 13:37:00 -0400</pubDate>
				<guid>http://blog.pengoworks.com/index.cfm/2009/5/12/Pagination-in-MSSQL-2005-with-onetomany-joins</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>Better handling of winmail.dat messages in Thunderbird with LookOut</title>
				<link>http://blog.pengoworks.com/index.cfm/2009/5/12/Better-handling-of-winmaildat-messages-in-Thunderbird-with-LookOut</link>
				<description>&lt;p&gt;Over the last few days I've been setting up a new laptop and got Thunderbird up and running (which I'm now going to try to use exclusively.) I've been using Thunderbird on my laptop for work related e-mails for 4 or 5 years now. One of the issues I've always had with it was handling TNEF encoded messages (aka &amp;quot;winmail.dat&amp;quot;) that Outlook insists on sending.&lt;/p&gt;  &lt;p&gt;Now this is really a problem with Outlook in that it doesn't always honor the &amp;quot;HTML&amp;quot; format and sometime insists on sending e-mail in Outlook's native format. If you use Outlook, you have no problems. However, every other client will just get the dreaded &amp;quot;winmail.dat&amp;quot; file as an attachment.&lt;/p&gt;  &lt;p&gt;In the past I've just used program (like &lt;a href="http://www.kopf.com.br/winmail/" target="_blank"&gt;Winmail Reader&lt;/a&gt;) to open the winmail.dat file and view the RTF and attachments. However, I decided to search the &lt;a href="https://addons.mozilla.org/en-US/thunderbird/" target="_blank"&gt;Thunderbird Add-ons&lt;/a&gt; page to see if anyone had developed a better solution and thankfully &lt;a href="http://lookout.mozdev.org/" target="_blank"&gt;Aron Rubin&lt;/a&gt; has developed the wonderful &lt;a href="http://lookout.mozdev.org/" target="_blank"&gt;LookOut&lt;/a&gt; add-on.&lt;/p&gt;  &lt;p&gt;LookOut automatically converts the winmail.dat into it's associated attachments and creates a RTF file that you can double-click on to open in Word (or your associated RTF application.) This solution works really well, because I know longer have to open the winmail.dat in an external program just to see the attachments.&lt;/p&gt;  &lt;p&gt;So kudos to Aron Rubin for this excellent add-on!&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/pengoblog?a=o9QlUpqGJnc:tXXZN9AlTqU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/pengoblog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/pengoblog?a=o9QlUpqGJnc:tXXZN9AlTqU:bcOpcFrp8Mo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/pengoblog?d=bcOpcFrp8Mo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
						
				
				<category>Potpourri</category>				
				
				<category>Technology</category>				
				
				<pubDate>Tue, 12 May 2009 10:02:42 -0400</pubDate>
				<guid>http://blog.pengoworks.com/index.cfm/2009/5/12/Better-handling-of-winmaildat-messages-in-Thunderbird-with-LookOut</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>Targeting specific Browsers with CSS</title>
				<link>http://blog.pengoworks.com/index.cfm/2009/4/24/Targeting-specific-Browsers-with-CSS</link>
				<description>&lt;p&gt;&lt;a href="http://paulirish.com/" target="_blank"&gt;Pail Irish&lt;/a&gt; posted a nice &lt;a href="http://paulirish.com/2009/browser-specific-css-hacks/" target="_blank"&gt;concise list of CSS hacks&lt;/a&gt; for targeting specific browsers. While I'd love to avoid using hacks altogether, I just continually find cases where it's necessary so this list is a handy little reference:&lt;/p&gt;  &lt;div class="wlWriterEditableSmartContent" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:cac87992-ab73-495d-91e8-02e76a6df3ba" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre style="background-color:#FFFFFF;white-space:-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; white-space: pre-wrap; word-wrap: break-word;overflow: auto;"&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;**** Selector Hacks *****&lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;span style="color: #800000;"&gt;
 
&lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt; IE 6 and below &lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;span style="color: #800000;"&gt;
* html #uno  &lt;/span&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; color&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #0000FF;"&gt; red &lt;/span&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;span style="color: #800000;"&gt;
 
&lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt; IE 7 and below &lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;span style="color: #800000;"&gt;
*:first-child+html #dos &lt;/span&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; color&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #0000FF;"&gt; red &lt;/span&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;span style="color: #800000;"&gt; 
 
&lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt; IE 7 and modern browsers &lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;span style="color: #800000;"&gt;
html&amp;gt;body #tres &lt;/span&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; color&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #0000FF;"&gt; red &lt;/span&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;span style="color: #800000;"&gt;
 
&lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt; Modern browsers (not IE 7) &lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;span style="color: #800000;"&gt;
html&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;/**/&lt;/span&gt;&lt;span style="color: #800000;"&gt;body #cuatro &lt;/span&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; color&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #0000FF;"&gt; red &lt;/span&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;span style="color: #800000;"&gt;
 
&lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt; Opera 9.27 and below &lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;span style="color: #800000;"&gt;
html:first-child #cinco &lt;/span&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; color&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #0000FF;"&gt; red &lt;/span&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;span style="color: #800000;"&gt;
 
&lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt; Safari &lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;span style="color: #800000;"&gt;
html[xmlns*=""] body:last-child #seis &lt;/span&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; color&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #0000FF;"&gt; red &lt;/span&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;span style="color: #800000;"&gt;
 
&lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;safari 3+, chrome 1+, opera9+, ff 3.5+ &lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;span style="color: #800000;"&gt;
body:nth-of-type(1) #siete &lt;/span&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; color&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #0000FF;"&gt; red &lt;/span&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;span style="color: #800000;"&gt;
 
&lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt; safari 3+, chrome 1+, opera9+, ff 3.5+ &lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;span style="color: #800000;"&gt;
body:first-of-type #ocho &lt;/span&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;  color&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #0000FF;"&gt; red &lt;/span&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;span style="color: #800000;"&gt;
 
&lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt; saf3, chrome1+ &lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;span style="color: #800000;"&gt;
@media screen and (-webkit-min-device-pixel-ratio:0) &lt;/span&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;
 #diez  { background&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #0000FF;"&gt; #FFDECE&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; border&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #0000FF;"&gt; 2px solid #ff0000  &lt;/span&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;span style="color: #800000;"&gt;
}
 
&lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;**** Attribute Hacks *****&lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;span style="color: #800000;"&gt;
 
&lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt; ie6 and below &lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;span style="color: #800000;"&gt;
#once &lt;/span&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; _color&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;blue &lt;/span&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;span style="color: #800000;"&gt;
 
&lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt; ie7 and below &lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;span style="color: #800000;"&gt;
#doce &lt;/span&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;span style="color: #FF0000;"&gt; *color&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #0000FF;"&gt; blue &lt;/span&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;span style="color: #800000;"&gt; &lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt; or #color:blue &lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;span style="color: #800000;"&gt;
 
&lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt; 'Modern Browsers' includes IE8, whether you agree or not.. :) &lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;

&lt;p&gt;I did notice that the &amp;quot;*&amp;quot; hack (i.e. &amp;quot;*color: blue&amp;quot;) also seems to get picked up by IE8, while he lists the hack as for being for IE7 and below.&lt;/p&gt;

&lt;p&gt;Paul even set up a &lt;a href="http://paulirish.com/work/csshacks.html" target="_blank"&gt;test page with all the hacks&lt;/a&gt; for testing.&lt;/p&gt;

&lt;p&gt;Nice job Paul!&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/pengoblog?a=4GQqYPk9GZs:9YcM8AfzJdc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/pengoblog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/pengoblog?a=4GQqYPk9GZs:9YcM8AfzJdc:bcOpcFrp8Mo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/pengoblog?d=bcOpcFrp8Mo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
						
				
				<category>HTML/ColdFusion</category>				
				
				<pubDate>Fri, 24 Apr 2009 16:26:35 -0400</pubDate>
				<guid>http://blog.pengoworks.com/index.cfm/2009/4/24/Targeting-specific-Browsers-with-CSS</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>Ganymede Mylyn v3.1.1 not working with Trac 0.10.4</title>
				<link>http://blog.pengoworks.com/index.cfm/2009/4/23/Ganymede-Mylyn-v311-not-working-with-Trac-0104</link>
				<description>&lt;p&gt;I recently upgraded to Eclipse 3.4.2 (Ganymede) and started having problems connecting to Trac. I didn't have any problems with Mylyn v2.3.2 in Eclipse v3.3, so I knew there were no configuration issues my installation.&lt;/p&gt;  &lt;p&gt;The first thing I did was bust out an HTTP proxy tool so I could view the HTTP traffic being sent. Turns out that Mylyn was not sending the authentication header, so my servers was just spitting back a 401 authentication failed message.&lt;/p&gt;  &lt;p&gt;I did a lot of searching and finally found the &lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=269323" target="_blank"&gt;authentification fails with mod_auth_sspi or NTLM&lt;/a&gt; issue in the Mylyn bug tracker&amp;#8212;which appears to be the exact issue I'm having, but alas upgrading to even the weekly (Mylyn v3.2) did not fix the problem.&lt;/p&gt;  &lt;p&gt;Finally, I decided to just uninstall all the versions of Mylyn I had installed, but v3.0.5 that came with my Ganymede installation. To do that, you've first got to disable all the plug-ins and then you can uninstall.&lt;/p&gt;  &lt;p&gt;Fortunately, rolling back to v3.0.5 has gotten me up and running again.&lt;/p&gt;  &lt;blockquote class="note"&gt;&lt;strong&gt;NOTE:&lt;/strong&gt;     &lt;div&gt;Our Trac server is running Apache 2.4 with Trac 0.10.4. We also are using SSL with a custom cert and using Windows Authentication.&lt;/div&gt;&lt;/blockquote&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/pengoblog?a=MiKZYDPBIgo:UWoxvy0bs9o:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/pengoblog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/pengoblog?a=MiKZYDPBIgo:UWoxvy0bs9o:bcOpcFrp8Mo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/pengoblog?d=bcOpcFrp8Mo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
						
				
				<category>HTML/ColdFusion</category>				
				
				<pubDate>Thu, 23 Apr 2009 13:24:43 -0400</pubDate>
				<guid>http://blog.pengoworks.com/index.cfm/2009/4/23/Ganymede-Mylyn-v311-not-working-with-Trac-0104</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>Fixing jQuery's slideDown() effect (i.e. Jumpy Animation)</title>
				<link>http://blog.pengoworks.com/index.cfm/2009/4/21/Fixing-jQuerys-slideDown-effect-ie-Jumpy-Animation</link>
				<description>&lt;p&gt;&lt;strong&gt;[UPDATED: Wednesday, April 22, 2009 at 8:43:54 AM]&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;I was working on some code today and was using the jQuery slideDown() and slideUp() effects and was running into an issue if the height of my box wasn't greater than certain height. As the box would slideDown, I'd see this jump in the animation as the height originally grew too large, so when the animation finished and it would go to the original height, I'd see this &amp;quot;jumping&amp;quot; effect.&lt;/p&gt;  &lt;p&gt;Remembering that I read a recent post by &lt;a href="http://remysharp.com/" target="_blank"&gt;Remy Sharp&lt;/a&gt; on the subject, a quick Google search brought up Remy's &lt;a href="http://jqueryfordesigners.com/slidedown-animation-jump-revisited/" target="_blank"&gt;SlideDown Animation Jump Revisited&lt;/a&gt; post. &lt;/p&gt;  &lt;p&gt;This turned out to be the same issue I was experiencing. Since I needed a little more generic version of Remy's code, I modified his original source to come up with this workaround:&lt;/p&gt;  &lt;div class="wlWriterEditableSmartContent" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:2905e3a4-08ed-4b8c-99de-6a54d9c4c799" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre style="background-color:#FFFFFF;overflow: auto;"&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; this is a fix for the jQuery slide effects&lt;/span&gt;&lt;span style="color: #008000;"&gt;
&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt; slideToggle(el, bShow){
  &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt; $el &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; $(el), height &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; $el.data(&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;originalHeight&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;), visible &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; $el.is(&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;:visible&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);
  
  &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; if the bShow isn't present, get the current visibility and reverse it&lt;/span&gt;&lt;span style="color: #008000;"&gt;
&lt;/span&gt;&lt;span style="color: #000000;"&gt;  &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;( arguments.length &lt;/span&gt;&lt;span style="color: #000000;"&gt;==&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt; ) bShow &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;!&lt;/span&gt;&lt;span style="color: #000000;"&gt;visible;
  
  &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; if the current visiblilty is the same as the requested state, cancel&lt;/span&gt;&lt;span style="color: #008000;"&gt;
&lt;/span&gt;&lt;span style="color: #000000;"&gt;  &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;( bShow &lt;/span&gt;&lt;span style="color: #000000;"&gt;==&lt;/span&gt;&lt;span style="color: #000000;"&gt; visible ) &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;false&lt;/span&gt;&lt;span style="color: #000000;"&gt;;
  
  &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; get the original height&lt;/span&gt;&lt;span style="color: #008000;"&gt;
&lt;/span&gt;&lt;span style="color: #000000;"&gt;  &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;( &lt;/span&gt;&lt;span style="color: #000000;"&gt;!&lt;/span&gt;&lt;span style="color: #000000;"&gt;height ){
    &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; get original height&lt;/span&gt;&lt;span style="color: #008000;"&gt;
&lt;/span&gt;&lt;span style="color: #000000;"&gt;    height &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; $el.show().height();
    &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; update the height&lt;/span&gt;&lt;span style="color: #008000;"&gt;
&lt;/span&gt;&lt;span style="color: #000000;"&gt;    $el.data(&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;originalHeight&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;, height);
    &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; if the element was hidden, hide it again&lt;/span&gt;&lt;span style="color: #008000;"&gt;
&lt;/span&gt;&lt;span style="color: #000000;"&gt;    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;( &lt;/span&gt;&lt;span style="color: #000000;"&gt;!&lt;/span&gt;&lt;span style="color: #000000;"&gt;visible ) $el.hide().css({height: &lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;});
  }

  &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; expand the knowledge (instead of slideDown/Up, use custom animation which applies fix)&lt;/span&gt;&lt;span style="color: #008000;"&gt;
&lt;/span&gt;&lt;span style="color: #000000;"&gt;  &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;( bShow ){
    $el.show().animate({height: height}, {duration: &lt;/span&gt;&lt;span style="color: #000000;"&gt;250&lt;/span&gt;&lt;span style="color: #000000;"&gt;});
  } &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;else&lt;/span&gt;&lt;span style="color: #000000;"&gt; {
    $el.animate({height: &lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;}, {duration: &lt;/span&gt;&lt;span style="color: #000000;"&gt;250&lt;/span&gt;&lt;span style="color: #000000;"&gt;, complete:&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt; (){
        $el.hide();
      }
    });
  }
}&lt;/span&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;

&lt;blockquote class="update"&gt;&lt;strong&gt;UPDATE 2009-04-22:&lt;/strong&gt; 

  &lt;div&gt;
    &lt;ul&gt;
      &lt;li&gt;Added check so that if requested toggle state is the same as current state, no animation occurs &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;

&lt;p&gt;While I could have written this as a plug-in, I kept it as a function&amp;#8212;mainly because this issue should be fixed in the jQuery core soon (if it's not fixed already in the SVN repository.)&lt;/p&gt;

&lt;p&gt;To use the solution, just pass in a selector to a &lt;strong&gt;&lt;em&gt;unique&lt;/em&gt;&lt;/strong&gt; element (such as &amp;quot;#element-id&amp;quot;) as the first argument. The second argument is optional and can be used to force the direction. Use &lt;samp&gt;true&lt;/samp&gt; to force it to slideDown() or &lt;samp&gt;false&lt;/samp&gt; to force it to slideUp(). If the argument is left off, it'll toggle the state of the element.&lt;/p&gt;

&lt;p&gt;Anyway, thanks to Remy for figuring out this issue. I'm sure I would have spent way more time tracking down the glitch if it weren't for the fact that I remember reading this when he posted the solution.&lt;/p&gt;

&lt;blockquote class="note"&gt;&lt;strong&gt;NOTE:&lt;/strong&gt; 

  &lt;div&gt;If you're element changes dynamically changes height, this solution won't work for you&amp;#8212;because it stores the original height and always uses that. You could workaround that by using the data() method to kill the stored height (i.e. $(&amp;quot;#your-element&amp;quot;).data(&amp;quot;originalHeight&amp;quot;, null).)&lt;/div&gt;&lt;/blockquote&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/pengoblog?a=pUD0_71-_Bg:KKeiJlTDdIo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/pengoblog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/pengoblog?a=pUD0_71-_Bg:KKeiJlTDdIo:bcOpcFrp8Mo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/pengoblog?d=bcOpcFrp8Mo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
						
				
				<category>jQuery</category>				
				
				<pubDate>Tue, 21 Apr 2009 18:07:26 -0400</pubDate>
				<guid>http://blog.pengoworks.com/index.cfm/2009/4/21/Fixing-jQuerys-slideDown-effect-ie-Jumpy-Animation</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>Eclipse showing .svn-base files in &amp;quot;Open Resource&amp;quot; dialog&amp;hellip;</title>
				<link>http://blog.pengoworks.com/index.cfm/2009/4/20/Eclipse-showing-svnbase-files-in-Open-Resource-dialog</link>
				<description>&lt;p&gt;Recently after installing a fresh copy of Eclipse 3.4 on my PC, I ran into an issue with the &amp;quot;Open Resouce&amp;quot; dialog ([CTRL]+[SHIFT]+[R]) where it was showing all my SVN files. Installing Subclipse is supposed to make the Eclipse IDE automatically hide the .svn-base files from showing up (via the &amp;quot;Team&amp;quot; interface) but it wasn't working out for me.&lt;/p&gt;  &lt;p&gt;Turns out there was a very easy solution to this problem&amp;#8212;just right click on the project and choose &amp;quot;Close Project&amp;quot; from the menu. After the project closes, just right-click on the project and select &amp;quot;Open Project.&amp;quot; This should reinitialize all the settings on a project and appears to registered the handling of automatically hiding the .svn-base files.&lt;/p&gt;  &lt;p&gt;An alternative, would be to add the find your org.eclipse.ui.ide_3.4.*.jar (org.eclipse.ui.ide_3.4.2.M20090127-1700.jar) and then modify the plugin.xml file to include the filter &amp;quot;*.svn-base&amp;quot;. I don't like this option because it requires you to change a JAR that could later be updated.&lt;/p&gt;  &lt;p&gt;If you choose that route, close Eclipse and open the JAR with a Zip extraction tool. Next, search the plugin.xml for the text &amp;quot;&amp;lt;filter&amp;quot;. There should be one filter tag:&lt;/p&gt;
				 [More]&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/pengoblog?a=N4vun7IzudQ:iyPrMb1D57w:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/pengoblog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/pengoblog?a=N4vun7IzudQ:iyPrMb1D57w:bcOpcFrp8Mo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/pengoblog?d=bcOpcFrp8Mo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
						
				
				<category>HTML/ColdFusion</category>				
				
				<category>Java</category>				
				
				<pubDate>Mon, 20 Apr 2009 10:46:00 -0400</pubDate>
				<guid>http://blog.pengoworks.com/index.cfm/2009/4/20/Eclipse-showing-svnbase-files-in-Open-Resource-dialog</guid>
				
				
			</item>
			
		 	
			</channel></rss>
