<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;Ak8BQX85eCp7ImA9WhdbFUk.&quot;"><id>tag:blogger.com,1999:blog-7078870535119697836</id><updated>2011-10-14T00:34:10.120+01:00</updated><category term="Adobe" /><category term="Twitter" /><category term="Flash" /><category term="Microsoft" /><category term="jQuery" /><category term="SQL" /><category term="AJAX" /><category term="Windows Server 2008" /><category term="Hyper-V" /><category term="Apple" /><category term="ColdFusion" /><category term="Mobile Phones" /><category term="Cool technology" /><category term="Windows 7" /><title>Gary's Gambit</title><subtitle type="html">Gary Fenton is an IT Consultant and thought it was high time he had his own blog instead of tagging his own opinions onto everyone elses blog! :-)</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://garysgambit.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://garysgambit.blogspot.com/" /><author><name>Gary Fenton</name><uri>http://www.blogger.com/profile/02616344210671605355</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_6lC_k5CzsBQ/SeKC-Y7ceNI/AAAAAAAAAAM/HoJZzNOIAPM/S220/faceyourmanga.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>25</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/GarysGambit" /><feedburner:info uri="garysgambit" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>GarysGambit</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2FGarysGambit" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FGarysGambit" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.feedburner.com%2FGarysGambit" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/GarysGambit" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FGarysGambit" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FGarysGambit" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FGarysGambit" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><feedburner:feedFlare href="http://www.plusmo.com/add?url=http%3A%2F%2Ffeeds.feedburner.com%2FGarysGambit" src="http://plusmo.com/res/graphics/fbplusmo.gif">Subscribe with Plusmo</feedburner:feedFlare><feedburner:feedFlare href="http://www.thefreedictionary.com/_/hp/AddRSS.aspx?http%3A%2F%2Ffeeds.feedburner.com%2FGarysGambit" src="http://img.tfd.com/hp/addToTheFreeDictionary.gif">Subscribe with The Free Dictionary</feedburner:feedFlare><feedburner:feedFlare href="http://www.bitty.com/manual/?contenttype=rssfeed&amp;contentvalue=http%3A%2F%2Ffeeds.feedburner.com%2FGarysGambit" src="http://www.bitty.com/img/bittychicklet_91x17.gif">Subscribe with Bitty Browser</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsalloy.com/?rss=http%3A%2F%2Ffeeds.feedburner.com%2FGarysGambit" src="http://www.newsalloy.com/subrss3.gif">Subscribe with NewsAlloy</feedburner:feedFlare><feedburner:feedFlare href="http://www.live.com/?add=http%3A%2F%2Ffeeds.feedburner.com%2FGarysGambit" src="http://tkfiles.storage.msn.com/x1piYkpqHC_35nIp1gLE68-wvzLZO8iXl_JMledmJQXP-XTBOLfmQv4zhj4MhcWEJh_GtoBIiAl1Mjh-ndp9k47If7hTaFno0mxW9_i3p_5qQw">Subscribe with Live.com</feedburner:feedFlare><feedburner:feedFlare href="http://mix.excite.eu/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FGarysGambit" src="http://image.excite.co.uk/mix/addtomix.gif">Subscribe with Excite MIX</feedburner:feedFlare><feedburner:feedFlare href="http://www.yourminis.com/subscribe.aspx?u=http%3A%2F%2Ffeeds.feedburner.com%2FGarysGambit" src="http://www.yourminis.com/images/addtoyourminisbadge.gif">Subscribe with Yourminis.com</feedburner:feedFlare><feedburner:feedFlare href="http://download.attensa.com/app/get_attensa.html?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FGarysGambit" src="http://www.attensa.com/blogs/attensa/WindowsLiveWriter/BadgeredintoBadges_10C02/attensa_feed_button5.gif">Subscribe with Attensa for Outlook</feedburner:feedFlare><feedburner:feedFlare href="http://www.webwag.com/wwgthis.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FGarysGambit" src="http://www.webwag.com/images/wwgthis.gif">Subscribe with Webwag</feedburner:feedFlare><feedburner:feedFlare href="http://hub.netomat.net/account/account.autoSubscribe.jspa?urls=http%3A%2F%2Ffeeds.feedburner.com%2FGarysGambit" src="http://www.netomat.net/blogger/images/icon_netomat_feedbutton.gif">Subscribe with netomat Hub</feedburner:feedFlare><feedburner:feedFlare href="http://www.podcastready.com/oneclick_bookmark.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FGarysGambit" src="http://www.podcastready.com/images/podcastready_button.gif">Subscribe with Podcast Ready</feedburner:feedFlare><feedburner:feedFlare href="http://www.flurry.com/pushRssFeed.do?r=fb&amp;url=http%3A%2F%2Ffeeds.feedburner.com%2FGarysGambit" src="http://www.flurry.com/images/flurry_rss_logo2.gif">Subscribe with Flurry</feedburner:feedFlare><feedburner:feedFlare href="http://www.wikio.com/subscribe?url=http%3A%2F%2Ffeeds.feedburner.com%2FGarysGambit" src="http://www.wikio.com/shared/img/add2wikio.gif">Subscribe with Wikio</feedburner:feedFlare><feedburner:feedFlare href="http://www.dailyrotation.com/index.php?feed=http%3A%2F%2Ffeeds.feedburner.com%2FGarysGambit" src="http://www.dailyrotation.com/rss-dr2.gif">Subscribe with Daily Rotation</feedburner:feedFlare><entry gd:etag="W/&quot;CEIHQ3c4fip7ImA9WhZXFk8.&quot;"><id>tag:blogger.com,1999:blog-7078870535119697836.post-4979645849560616129</id><published>2011-05-05T20:08:00.001+01:00</published><updated>2011-05-05T20:08:52.936+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-05T20:08:52.936+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Adobe" /><title>Buying online from Slow-dobe</title><content type="html">&lt;p&gt;Here are some observations and tips for buying software direct from Adobe.com and a warning.&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Don’t expect to download your newly purchased software on the same day you bought it. Adobe are very slow to release your product’s serial number. Imagine someone working in a tiny room somewhere in India printing out orders, using a ladder to stack them, as his grandmother slowly keys in serial numbers into another computer. The pair have been doing it for years and like it that way; they think their customers must be patient and wait their turn.&lt;/li&gt;    &lt;li&gt;For UK consumers it’s cheaper to order a boxed copy than to go for the download-only option. Go figure that one out!&lt;/li&gt;    &lt;li&gt;The US price is much cheaper than the UK price, but that’s no surprise. It won’t let you buy from the US store unless you register a valid US postal address. (I’m not sure if it would reject a credit card registered in the UK, but you could try using PayPal.)&lt;/li&gt;    &lt;li&gt;If you are a business you can sometimes get a better price by going to Adobe’s Business Store – even taking VAT into account. This store also has the download and boxed options at the same price.&lt;/li&gt;    &lt;li&gt;Adobe’s website is slooooow. The product pages are slow, the store is slow and the licensing site is slow. I hope the public don’t think this is a reflection of ColdFusion. They may get loads of traffic but that’s no excuse. They may be the market leaders and pretty much have a captive audience for many types of product but that’s no excuse either to be complacent.&lt;/li&gt;    &lt;li&gt;If you think you can side step Adobe and buy from a reseller then think again. Downloads and the release of serial numbers for certain products (especially upgrades) must go through Adobe.&lt;/li&gt;    &lt;li&gt;It’s been this bad for as long as I can remember. You should plan to make your purchase as early as possible, don’t leave it to the last minute.&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;I’ve just bought Dreamweaver in case you’re wondering. Previously I bought ColdFusion several times.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7078870535119697836-4979645849560616129?l=garysgambit.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GarysGambit?a=w4JMr-yiIl4:4ACbmUSfki4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GarysGambit?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GarysGambit/~4/w4JMr-yiIl4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://garysgambit.blogspot.com/feeds/4979645849560616129/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://garysgambit.blogspot.com/2011/05/buying-online-from-slow-dobe.html#comment-form" title="6 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7078870535119697836/posts/default/4979645849560616129?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7078870535119697836/posts/default/4979645849560616129?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GarysGambit/~3/w4JMr-yiIl4/buying-online-from-slow-dobe.html" title="Buying online from Slow-dobe" /><author><name>Gary Fenton</name><uri>http://www.blogger.com/profile/02616344210671605355</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_6lC_k5CzsBQ/SeKC-Y7ceNI/AAAAAAAAAAM/HoJZzNOIAPM/S220/faceyourmanga.jpg" /></author><thr:total>6</thr:total><feedburner:origLink>http://garysgambit.blogspot.com/2011/05/buying-online-from-slow-dobe.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUQMSHo5eyp7ImA9Wx9bEEs.&quot;"><id>tag:blogger.com,1999:blog-7078870535119697836.post-7982681264453289221</id><published>2011-02-18T22:16:00.001Z</published><updated>2011-02-18T22:16:29.423Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-18T22:16:29.423Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Cool technology" /><title>Genius Tech That Blew My Mind This Week</title><content type="html">&lt;p&gt;I stumbled upon two things this week that blew my mind. The first is a Xbox Kinect “hacker” who writes his own software to fully exploit Microsoft’s amazing hardware add-on. (Yes, I know it’s a few months old but you may not have seen it.) First check out this video. Keep in mind the Kinect is sitting stationary on his desk.&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:ac7b3d9c-141d-4484-870b-7fb8da7bddd9" class="wlWriterEditableSmartContent"&gt;&lt;div id="10c0bb6d-fdd2-4773-a656-c4d7662da0e2" style="margin: 0px; padding: 0px; display: inline;"&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=7QrnwoO1-8A" target="_new"&gt;&lt;img src="http://lh6.ggpht.com/_6lC_k5CzsBQ/TV7vuBYLPNI/AAAAAAAAACk/G9OcSflW13M/videoea2c3e0c9407%5B40%5D.jpg?imgmax=800" style="border-style: none" galleryimg="no" onload="var downlevelDiv = document.getElementById('10c0bb6d-fdd2-4773-a656-c4d7662da0e2'); downlevelDiv.innerHTML = &amp;quot;&amp;lt;div&amp;gt;&amp;lt;object width=\&amp;quot;448\&amp;quot; height=\&amp;quot;252\&amp;quot;&amp;gt;&amp;lt;param name=\&amp;quot;movie\&amp;quot; value=\&amp;quot;http://www.youtube.com/v/7QrnwoO1-8A?hl=en&amp;amp;hd=1\&amp;quot;&amp;gt;&amp;lt;\/param&amp;gt;&amp;lt;embed src=\&amp;quot;http://www.youtube.com/v/7QrnwoO1-8A?hl=en&amp;amp;hd=1\&amp;quot; type=\&amp;quot;application/x-shockwave-flash\&amp;quot; width=\&amp;quot;448\&amp;quot; height=\&amp;quot;252\&amp;quot;&amp;gt;&amp;lt;\/embed&amp;gt;&amp;lt;\/object&amp;gt;&amp;lt;\/div&amp;gt;&amp;quot;;" alt=""&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="width:448px;clear:both;font-size:.8em"&gt;Genius video manipulation in 3D&lt;/div&gt;&lt;/div&gt;  &lt;p&gt;A couple of months later he’s discovered how to link 2 Kinects together. What you will see is video from two stationary Kinect cameras. They do not move.&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:b9fcf8e6-412f-4db8-bd31-452ddcec54ef" class="wlWriterEditableSmartContent"&gt;&lt;div id="3be733dd-9791-4bdb-9f50-ac78ad5ad648" style="margin: 0px; padding: 0px; display: inline;"&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/user/okreylos#p/u/3/5-w7UXCAUJE" target="_new"&gt;&lt;img src="http://lh5.ggpht.com/_6lC_k5CzsBQ/TV7vus7YIxI/AAAAAAAAACo/mzRVp_Hw3OA/video70cd184b944a%5B31%5D.jpg?imgmax=800" style="border-style: none" galleryimg="no" onload="var downlevelDiv = document.getElementById('3be733dd-9791-4bdb-9f50-ac78ad5ad648'); downlevelDiv.innerHTML = &amp;quot;&amp;lt;div&amp;gt;&amp;lt;object width=\&amp;quot;448\&amp;quot; height=\&amp;quot;252\&amp;quot;&amp;gt;&amp;lt;param name=\&amp;quot;movie\&amp;quot; value=\&amp;quot;http://www.youtube.com/v/5-w7UXCAUJE?hl=en&amp;amp;hd=1\&amp;quot;&amp;gt;&amp;lt;\/param&amp;gt;&amp;lt;embed src=\&amp;quot;http://www.youtube.com/v/5-w7UXCAUJE?hl=en&amp;amp;hd=1\&amp;quot; type=\&amp;quot;application/x-shockwave-flash\&amp;quot; width=\&amp;quot;448\&amp;quot; height=\&amp;quot;252\&amp;quot;&amp;gt;&amp;lt;\/embed&amp;gt;&amp;lt;\/object&amp;gt;&amp;lt;\/div&amp;gt;&amp;quot;;" alt=""&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="width:448px;clear:both;font-size:.8em"&gt;Super genius manipulation in 3D space with 2 Kinects&lt;/div&gt;&lt;/div&gt;  &lt;p&gt;Taking this to the next level but with practical gaming in mind, look at what he did with a Kinect set up in two remote locations, a network connection between him and his colleague, a Doom 3 map and lots of clever code.&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:2649e585-c44d-4c96-82ea-740022e150a0" class="wlWriterEditableSmartContent"&gt;&lt;div id="141556f8-bdd7-44ba-a9a4-ffaa6420db11" style="margin: 0px; padding: 0px; display: inline;"&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/user/okreylos#p/u/0/BOTItUNg6dc" target="_new"&gt;&lt;img src="http://lh6.ggpht.com/_6lC_k5CzsBQ/TV7vvO_7KaI/AAAAAAAAACs/wXQLFOPImZc/videoe01a54fe75f5%5B22%5D.jpg?imgmax=800" style="border-style: none" galleryimg="no" onload="var downlevelDiv = document.getElementById('141556f8-bdd7-44ba-a9a4-ffaa6420db11'); downlevelDiv.innerHTML = &amp;quot;&amp;lt;div&amp;gt;&amp;lt;object width=\&amp;quot;448\&amp;quot; height=\&amp;quot;252\&amp;quot;&amp;gt;&amp;lt;param name=\&amp;quot;movie\&amp;quot; value=\&amp;quot;http://www.youtube.com/v/BOTItUNg6dc?hl=en&amp;amp;hd=1\&amp;quot;&amp;gt;&amp;lt;\/param&amp;gt;&amp;lt;embed src=\&amp;quot;http://www.youtube.com/v/BOTItUNg6dc?hl=en&amp;amp;hd=1\&amp;quot; type=\&amp;quot;application/x-shockwave-flash\&amp;quot; width=\&amp;quot;448\&amp;quot; height=\&amp;quot;252\&amp;quot;&amp;gt;&amp;lt;\/embed&amp;gt;&amp;lt;\/object&amp;gt;&amp;lt;\/div&amp;gt;&amp;quot;;" alt=""&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="width:448px;clear:both;font-size:.8em"&gt;Augmented virtual reality taken to a new level across a network&lt;/div&gt;&lt;/div&gt;  &lt;p&gt;Lastly, I was really impressed to see that a radio controlled hummingbird has been invented that uses nothing but wing-flapping to propel itself and behave remarkably like the real thing. It’s only 19 grams in weight (0.7oz) but can carry a camera to transmit live video back to its base.&lt;/p&gt;  &lt;p&gt;The video of it &lt;a href="http://www.newscientist.com/blogs/onepercent/2011/02/hummingbird-uav-flies-by-flapp.html"&gt;flying in action is at NewScientist.com&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7078870535119697836-7982681264453289221?l=garysgambit.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GarysGambit?a=75Tc5oWd40w:tv9XArVBGzI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GarysGambit?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GarysGambit/~4/75Tc5oWd40w" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://garysgambit.blogspot.com/feeds/7982681264453289221/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://garysgambit.blogspot.com/2011/02/genius-tech-that-blew-my-mind-this-week.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7078870535119697836/posts/default/7982681264453289221?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7078870535119697836/posts/default/7982681264453289221?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GarysGambit/~3/75Tc5oWd40w/genius-tech-that-blew-my-mind-this-week.html" title="Genius Tech That Blew My Mind This Week" /><author><name>Gary Fenton</name><uri>http://www.blogger.com/profile/02616344210671605355</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_6lC_k5CzsBQ/SeKC-Y7ceNI/AAAAAAAAAAM/HoJZzNOIAPM/S220/faceyourmanga.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/_6lC_k5CzsBQ/TV7vuBYLPNI/AAAAAAAAACk/G9OcSflW13M/s72-c/videoea2c3e0c9407%5B40%5D.jpg?imgmax=800" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://garysgambit.blogspot.com/2011/02/genius-tech-that-blew-my-mind-this-week.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUICQXg5cSp7ImA9Wx5SGUQ.&quot;"><id>tag:blogger.com,1999:blog-7078870535119697836.post-8749431634368406030</id><published>2010-08-16T23:24:00.001+01:00</published><updated>2010-08-16T23:26:00.629+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-16T23:26:00.629+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Adobe" /><category scheme="http://www.blogger.com/atom/ns#" term="ColdFusion" /><title>Critical CF hotfix must be applied pronto!</title><content type="html">&lt;p&gt;Adobe released a &lt;a href="http://www.adobe.com/support/security/bulletins/apsb10-18.html"&gt;security hotfix&lt;/a&gt; on 10th August 2010 and classed it as “important”. However, if security is even moderately important to your ColdFusion server, the file system, database and network then you must think of this hotfix as CRITICAL. Just to clarify, this is &lt;strong&gt;&lt;font color="#ffff00"&gt;CRITICAL&lt;/font&gt;&lt;/strong&gt;. An HP &lt;a href="http://h30507.www3.hp.com/t5/Following-the-White-Rabbit-A/Adobe-ColdFusion-s-Directory-Traversal-Disaster/ba-p/81964"&gt;security expert&lt;/a&gt; has blogged about it and It also caught the eye of &lt;a href="http://www.theregister.co.uk/2010/08/16/adobe_coldfusion_vuln/"&gt;The Register&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Hackers have proven how easy it is to use a vulnerability in CF 7, 8 and 9 to gain access to the CF Administrator. Code to perform the hack has been made freely available (which I won’t directly link to, but others have). &lt;a href="https://twitter.com/mckt_/status/21165493064"&gt;Mike Bailey&lt;/a&gt; tweeted “It works and it’s scary.” Someone else chimed in and showed how you don’t even need to hack the Administrator’s password by using a cheeky bit of JavaScript.&lt;/p&gt;  &lt;p&gt;Why is this really bad? Well, once you have access to CF Admin you can run scheduled tasks to access the OS. Someone has kindly(?) written an &lt;a href="http://www.gnucitizen.org/blog/coldfusion-directory-traversal-faq-cve-2010-2861/"&gt;FAQ explaining how it works&lt;/a&gt; and why it’s so bad.&lt;/p&gt;  &lt;p&gt;Now that the world knows how to hack it, everyone running CF must now patch their server. Adobe need to hammer home the seriousness of this problem and how critical the hotfix is. “Important” doesn’t stress it enough.&lt;/p&gt;  &lt;p&gt;If you have already made the “administrator” directory inaccessible to the Internet or IP protected it then you should be safe, but it’s a good idea to still apply this critical &lt;a href="http://www.adobe.com/support/security/bulletins/apsb10-18.html"&gt;hotfix&lt;/a&gt;.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7078870535119697836-8749431634368406030?l=garysgambit.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GarysGambit?a=We_6f4VZ-dc:-cLyVKZGYp4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GarysGambit?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GarysGambit/~4/We_6f4VZ-dc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://garysgambit.blogspot.com/feeds/8749431634368406030/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://garysgambit.blogspot.com/2010/08/critical-cf-hotfix-must-be-applied.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7078870535119697836/posts/default/8749431634368406030?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7078870535119697836/posts/default/8749431634368406030?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GarysGambit/~3/We_6f4VZ-dc/critical-cf-hotfix-must-be-applied.html" title="Critical CF hotfix must be applied pronto!" /><author><name>Gary Fenton</name><uri>http://www.blogger.com/profile/02616344210671605355</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_6lC_k5CzsBQ/SeKC-Y7ceNI/AAAAAAAAAAM/HoJZzNOIAPM/S220/faceyourmanga.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://garysgambit.blogspot.com/2010/08/critical-cf-hotfix-must-be-applied.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEANQ3k4cSp7ImA9Wx5SFUs.&quot;"><id>tag:blogger.com,1999:blog-7078870535119697836.post-3659236843095150384</id><published>2010-08-11T22:39:00.001+01:00</published><updated>2010-08-11T22:39:52.739+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-11T22:39:52.739+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Windows 7" /><category scheme="http://www.blogger.com/atom/ns#" term="Windows Server 2008" /><category scheme="http://www.blogger.com/atom/ns#" term="Microsoft" /><title>SP1 Joy for Windows 7 and Server 2008 R2</title><content type="html">&lt;p&gt;My main issue with Windows 7 and Server 2008 R2 was the removal of the otherwise simple feature of restoring open folders after a reboot. Currently Windows restores the folders in a random cascaded position forcing you to tidy up your desktop every time you boot up. It appears that through pressure from many users Microsoft have listened. Yay!&lt;/p&gt;  &lt;p&gt;SP1, to be released in early 2011, will restore this much missed feature that was present in XP and Server 2003. From the documentation:&lt;/p&gt;  &lt;p&gt;&lt;font color="#ffff00"&gt;“SP1 changes the behavior of the ‘Restore previous folders at logon’ function available in the Folder Options Explorer dialog. Prior to SP1, previous folders would be restored in a cascaded position based on the location of the most recently active folder. That behavior changes in SP1 so that all folders are restored to their previous positions.”&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Forget dynamic memory and RemoteFX, this is what I’m missing! :-)&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7078870535119697836-3659236843095150384?l=garysgambit.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GarysGambit?a=2CrgGotKncM:kgScRPEhSWk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GarysGambit?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GarysGambit/~4/2CrgGotKncM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://garysgambit.blogspot.com/feeds/3659236843095150384/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://garysgambit.blogspot.com/2010/08/sp1-joy-for-windows-7-and-server-2008.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7078870535119697836/posts/default/3659236843095150384?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7078870535119697836/posts/default/3659236843095150384?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GarysGambit/~3/2CrgGotKncM/sp1-joy-for-windows-7-and-server-2008.html" title="SP1 Joy for Windows 7 and Server 2008 R2" /><author><name>Gary Fenton</name><uri>http://www.blogger.com/profile/02616344210671605355</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_6lC_k5CzsBQ/SeKC-Y7ceNI/AAAAAAAAAAM/HoJZzNOIAPM/S220/faceyourmanga.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://garysgambit.blogspot.com/2010/08/sp1-joy-for-windows-7-and-server-2008.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D08FQno7eyp7ImA9WxFWEUs.&quot;"><id>tag:blogger.com,1999:blog-7078870535119697836.post-1426340190820536026</id><published>2010-05-29T21:28:00.002+01:00</published><updated>2010-05-29T21:43:33.403+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-29T21:43:33.403+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Adobe" /><category scheme="http://www.blogger.com/atom/ns#" term="ColdFusion" /><title>ColdFusion Bugtracker Bug</title><content type="html">&lt;div&gt;How does one submit a bug about a bug submitting tool? Below, the ColdFusion Bugtracker after completing a 2 page form.&lt;/div&gt;  &lt;div&gt;   &lt;br /&gt;&lt;/div&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_6lC_k5CzsBQ/TAF5NfplHwI/AAAAAAAAACM/f3-7AOW7AwU/s1600/cfbugtrackerbug.jpg"&gt;&lt;img style="text-align: center; margin: 0px auto 10px; width: 400px; display: block; height: 339px; cursor: hand" id="BLOGGER_PHOTO_ID_5476791894600392450" border="0" alt="" src="http://2.bp.blogspot.com/_6lC_k5CzsBQ/TAF5NfplHwI/AAAAAAAAACM/f3-7AOW7AwU/s400/cfbugtrackerbug.jpg" /&gt;&lt;/a&gt;  &lt;br /&gt;  &lt;div&gt;I tried this twice, logging in again the second time just to make sure I was logged in. Booo. Now I have 2 bugs to report to Adobe!&lt;/div&gt;  &lt;div&gt;   &lt;br /&gt;&lt;/div&gt;  &lt;div&gt;   &lt;br /&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7078870535119697836-1426340190820536026?l=garysgambit.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GarysGambit?a=ruGuv209RS4:Pgjc-8uaZuw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GarysGambit?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GarysGambit/~4/ruGuv209RS4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://garysgambit.blogspot.com/feeds/1426340190820536026/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://garysgambit.blogspot.com/2010/05/coldfusion-bugtracker-bug.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7078870535119697836/posts/default/1426340190820536026?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7078870535119697836/posts/default/1426340190820536026?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GarysGambit/~3/ruGuv209RS4/coldfusion-bugtracker-bug.html" title="ColdFusion Bugtracker Bug" /><author><name>Gary Fenton</name><uri>http://www.blogger.com/profile/02616344210671605355</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_6lC_k5CzsBQ/SeKC-Y7ceNI/AAAAAAAAAAM/HoJZzNOIAPM/S220/faceyourmanga.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_6lC_k5CzsBQ/TAF5NfplHwI/AAAAAAAAACM/f3-7AOW7AwU/s72-c/cfbugtrackerbug.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://garysgambit.blogspot.com/2010/05/coldfusion-bugtracker-bug.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE4BSXY7eyp7ImA9WxFXGUw.&quot;"><id>tag:blogger.com,1999:blog-7078870535119697836.post-7786369781863553731</id><published>2010-05-27T00:35:00.001+01:00</published><updated>2010-05-27T00:35:58.803+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-27T00:35:58.803+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ColdFusion" /><title>Sessions never expire bug in ColdFusion 8.01</title><content type="html">&lt;p&gt;A couple of times a year I’ve encountered a strange problem in our ColdFusion servers where sessions mount up and aren’t removed after they should have expired. Just today we had 100’s of sessions left in memory with all of the session scope variables still there at the end of the day, hours after they should have been deleted. Automated session housekeeping ceased to be.&lt;/p&gt;  &lt;p&gt;Two other symptoms drew my attention to the above problem which must surely be related. Emails stopped being sent, the spool directory filled up without any cfmail files leaving. And from the website CF sporadically threw the error “The session is invalid” which was temporarily resolved by closing the browser and logging into the app again.&lt;/p&gt;  &lt;p&gt;Restarting the CF services doesn’t resolve the situation because the service refuses to stop if asked politely. A full reboot is the only way to restore normality with confidence.&lt;/p&gt;  &lt;p&gt;You’re probably thinking what good is it complaining now because 8.01 isn’t the current release and we should upgrade to 9.x. Well how do we know that 9.x has fixed this problem? Are Adobe aware of the issue? We could run a 30 day trial of 9.x on a test server but we’d have to run it for at least 6 months with a constant load to mimic our production server keeping in mind the rare appearance of the bug.&lt;/p&gt;  &lt;p&gt;If you have encountered this problem before or know how to fix it then please let me know.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7078870535119697836-7786369781863553731?l=garysgambit.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GarysGambit?a=rWeArBkA4SA:ImFdxXyDJWY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GarysGambit?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GarysGambit/~4/rWeArBkA4SA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://garysgambit.blogspot.com/feeds/7786369781863553731/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://garysgambit.blogspot.com/2010/05/sessions-never-expire-bug-in-coldfusion.html#comment-form" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7078870535119697836/posts/default/7786369781863553731?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7078870535119697836/posts/default/7786369781863553731?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GarysGambit/~3/rWeArBkA4SA/sessions-never-expire-bug-in-coldfusion.html" title="Sessions never expire bug in ColdFusion 8.01" /><author><name>Gary Fenton</name><uri>http://www.blogger.com/profile/02616344210671605355</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_6lC_k5CzsBQ/SeKC-Y7ceNI/AAAAAAAAAAM/HoJZzNOIAPM/S220/faceyourmanga.jpg" /></author><thr:total>3</thr:total><feedburner:origLink>http://garysgambit.blogspot.com/2010/05/sessions-never-expire-bug-in-coldfusion.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0MNSXg5fCp7ImA9WxFXGE0.&quot;"><id>tag:blogger.com,1999:blog-7078870535119697836.post-8957416023846091087</id><published>2010-05-25T17:38:00.001+01:00</published><updated>2010-05-25T17:38:18.624+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-25T17:38:18.624+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Windows Server 2008" /><category scheme="http://www.blogger.com/atom/ns#" term="Microsoft" /><category scheme="http://www.blogger.com/atom/ns#" term="Hyper-V" /><title>Windows 2008 Hyper-V / VSS / Backup Bug Part III</title><content type="html">&lt;p&gt;Good news! We’ve been issued by Microsoft with a public release of the hotfix KB982210, as it will be known. The fix will only work on 2008 R2 and not with any previous releases of the OS.&lt;/p&gt;  &lt;p&gt;So how does the fix work? First let me explain the problem more clearly than in previous blog entries. Whenever a device is attached to Windows the Plug &amp;amp; Play Manager creates an entry for that device in the registry. If it’s a USB device, for example, and you unplug it then its entry will remain in the registry so when it’s plugged back in the computer will recognise it and any settings that have previously been set up for it. The same is true for snapshots created by VSS, the Volume Snapshot Service. A snapshot is treated like a device so one a new snapshot is created so too is a registry entry for the device.&lt;/p&gt;  &lt;p&gt;Now here’s the problem. The registry entries are not removed – ever. While many users will never have a problem with that there are a number of power users who generate 1000’s of snapshots over a short period of time. For example, in our case where we use Windows Server Backup (WSB) with a backup schedule set to every 30 minutes which includes backing up 14 VHDs used by several VMs on Hyper-V. VSS will create 14 snapshots (one for each VHD) every time a backup is run. That’s 14 snapshots every 30 minutes. That’s 672 a day and over 20,000 per month. See how quickly they mount up and none of the device entries in the registry are being removed.&lt;/p&gt;  &lt;p&gt;Severe problems manifest when the host server is rebooted and the registry is processed, analysing tens of thousands of devices, causing the server to look as if it has hung. It freezes for 2 or 3 hours, possibly more if I had let the server carry on taking more backups.&lt;/p&gt;  &lt;p&gt;The registry key you need to check in Windows 2008 R2 is:   &lt;br /&gt;&lt;font color="#ffff00"&gt;&lt;strong&gt;HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\STORAGE\Volume&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;There should be 10 to 50 entries in there for a normal healthy machine, depending on how many devices you have attached. On our server we had 28,000 entries!&lt;/p&gt;  &lt;h3&gt;Now, how does the fix work?&lt;/h3&gt;  &lt;p&gt;The new hotfix from Microsoft makes a change to the Plug &amp;amp; Play Manager that adds a timestamp (or a tombstone date as they prefer to call it) for each new snapshot device that’s created. This means Windows is now aware of exactly when a snapshot was created and can make a decision to fully remove the device’s entry from the registry after a certain period of time. I’m not sure how long it waits but from our experience it can be counted in minutes rather than days or weeks.&lt;/p&gt;  &lt;p&gt;So well done to Microsoft for creating a smart solution to a critical problem. It took a massive amount of effort to get our case brought to the attention of the right person. Before that I had spent weeks working with a Microsoft support team in India by phone and remote desktop trying to explain what the problem was (and no, the problem will not be resolved by re-installing Windows, thank you!). It wasn’t until a Premiere Support case was opened and a Microsoft account manager from the UK got involved who contacted the right technical person that we started to make rapid progress. Microsoft had been aware of the technical issue for a while but our case seemed to have given them the incentive to fully investigate it. And we are grateful that we were finally listened to and some very expensive new servers can finally be put into service.&lt;/p&gt;  &lt;h3&gt;Cleaning up the registry&lt;/h3&gt;  &lt;p&gt;The only problem that remains is for other people experiencing this. You need to clean up your registry before applying the hotfix otherwise the freezing symptom will persist. To do this you need a tool from Microsoft called devnodeclean. Sadly this is not available anywhere on the Internet to download based on my Google and Bing searches. Microsoft should be able to email you a copy if you open a support case with them and refer them to KB982210 and this blog entry for good measure. Run devnodeclean without any switches at first to see what it makes of your registry, then use the /r switch to force it to remove the unwanted devices from the registry.&lt;/p&gt;  &lt;p&gt;Next you may need to compact your registry if it has become huge, anything over 50MB I would say. Ours peaked at over 450MB. The “system” hive (found in C:\Windows\System32\config\) can be compacted using regchk using the switches /l /c /r /v. Again, chkreg is only available by request from Microsoft and was in fact developed to repair the registry in Windows 2000 but amazingly still works for 2008 R2. Please note that regchk cannot compact a live “system” file. You need to back up your system settings first and run chkreg on a &lt;strong&gt;restored copy&lt;/strong&gt; of the “system” file (restore it to a new folder somewhere else). Then boot up from the Windows setup DVD and enter the recovery console. Rename “system” to “system.old” and copy the compacted system file into the config directory. Then reboot into Windows.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7078870535119697836-8957416023846091087?l=garysgambit.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GarysGambit?a=ZHBkkwU2_TI:iKm4kcE1SX0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GarysGambit?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GarysGambit/~4/ZHBkkwU2_TI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://garysgambit.blogspot.com/feeds/8957416023846091087/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://garysgambit.blogspot.com/2010/05/windows-2008-hyper-v-vss-backup-bug.html#comment-form" title="12 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7078870535119697836/posts/default/8957416023846091087?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7078870535119697836/posts/default/8957416023846091087?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GarysGambit/~3/ZHBkkwU2_TI/windows-2008-hyper-v-vss-backup-bug.html" title="Windows 2008 Hyper-V / VSS / Backup Bug Part III" /><author><name>Gary Fenton</name><uri>http://www.blogger.com/profile/02616344210671605355</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_6lC_k5CzsBQ/SeKC-Y7ceNI/AAAAAAAAAAM/HoJZzNOIAPM/S220/faceyourmanga.jpg" /></author><thr:total>12</thr:total><feedburner:origLink>http://garysgambit.blogspot.com/2010/05/windows-2008-hyper-v-vss-backup-bug.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkQNSXc-eCp7ImA9WxFTGEs.&quot;"><id>tag:blogger.com,1999:blog-7078870535119697836.post-8450608075422325382</id><published>2010-04-10T01:46:00.001+01:00</published><updated>2010-04-10T01:46:38.950+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-04-10T01:46:38.950+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Flash" /><category scheme="http://www.blogger.com/atom/ns#" term="Apple" /><title>Nasty Bite From the Apple</title><content type="html">&lt;p&gt;Apple have gone bonkers. They have changed their developers license to make sure that Flash can’t run on iphone, itouch and ipad devices. Do they really have it in for Adobe Flash or are they just trying to hide the possibility that they’re going to launch their own software in competition to Flash, or maybe their devices will run really slowly if they were to support Flash?&lt;/p&gt;  &lt;p&gt;Considering that Flash is on 98% of all desktop computers and most of the best or most visited websites use Flash this is very strange behaviour exhibited by Apple.&lt;/p&gt;  &lt;p&gt;But you know what, I don’t care! Why? Because I don’t own any Apple kit. I never have done and I’m not sure if I ever will. You see, Apple produce fashionable portable devices and I’m not one to follow fashion, especially if it looks far better than it actually performs as far as features are concerned. (I admit the UI is good but the rest of the world is catching up – seen Windows 7 Mobile?) And denying i(pod|pad|touch) users the ability to tap into Flash is denying them a fair bit of functionality. But do the users really care? Probably not since millions of people have already spoken with their wallets.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7078870535119697836-8450608075422325382?l=garysgambit.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GarysGambit?a=JBjOBKM3Z3U:sbNPE-DN1Z0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GarysGambit?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GarysGambit/~4/JBjOBKM3Z3U" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://garysgambit.blogspot.com/feeds/8450608075422325382/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://garysgambit.blogspot.com/2010/04/nasty-bite-from-apple.html#comment-form" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7078870535119697836/posts/default/8450608075422325382?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7078870535119697836/posts/default/8450608075422325382?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GarysGambit/~3/JBjOBKM3Z3U/nasty-bite-from-apple.html" title="Nasty Bite From the Apple" /><author><name>Gary Fenton</name><uri>http://www.blogger.com/profile/02616344210671605355</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_6lC_k5CzsBQ/SeKC-Y7ceNI/AAAAAAAAAAM/HoJZzNOIAPM/S220/faceyourmanga.jpg" /></author><thr:total>3</thr:total><feedburner:origLink>http://garysgambit.blogspot.com/2010/04/nasty-bite-from-apple.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUcERnY7eCp7ImA9WxFTEk0.&quot;"><id>tag:blogger.com,1999:blog-7078870535119697836.post-2525460921244871423</id><published>2010-04-02T11:10:00.001+01:00</published><updated>2010-04-02T11:10:07.800+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-04-02T11:10:07.800+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Windows Server 2008" /><category scheme="http://www.blogger.com/atom/ns#" term="Microsoft" /><category scheme="http://www.blogger.com/atom/ns#" term="Hyper-V" /><title>Windows 2008 Hyper-V or Volume Shadow Copy Bug Part II</title><content type="html">&lt;p&gt;Following on from the &lt;a href="http://garysgambit.blogspot.com/2010/03/2008-server-freeze-hyper-v-or-volume.html"&gt;problem I blogged about a couple of weeks ago&lt;/a&gt;, this is definitely a bug in Windows. From what we’ve been told it’s an inheritary, built-in limitation with VSS that prevents it from cleaning up after itself once 9,999 snapshots have been created. Therefore it only manifests if your server has created that many snapshots, so the explanation goes.&lt;/p&gt;  &lt;p&gt;Now, not many people run snapshots frequently enough to encounter the problem but since our servers are running a backup every 30 minutes and there are 14 VHDs connected to Hyper-V we would run into the problem in just 15 days. That’s the explanation we were given but that doesn’t explain why after cleaning up the registry using devnodeclean and chkreg the registry will immediately start to bloat during the next backup. Hmmm. And we encountered symptoms (freezing) only after the first week – that’s less than 9999 snapshots. Hmm.&lt;/p&gt;  &lt;p&gt;I’m hoping the engineers investigating this can come up with a permanent fix very soon.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7078870535119697836-2525460921244871423?l=garysgambit.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GarysGambit?a=ruzD7-cKELA:crIOgmygaJU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GarysGambit?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GarysGambit/~4/ruzD7-cKELA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://garysgambit.blogspot.com/feeds/2525460921244871423/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://garysgambit.blogspot.com/2010/04/windows-2008-hyper-v-or-volume-shadow.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7078870535119697836/posts/default/2525460921244871423?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7078870535119697836/posts/default/2525460921244871423?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GarysGambit/~3/ruzD7-cKELA/windows-2008-hyper-v-or-volume-shadow.html" title="Windows 2008 Hyper-V or Volume Shadow Copy Bug Part II" /><author><name>Gary Fenton</name><uri>http://www.blogger.com/profile/02616344210671605355</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_6lC_k5CzsBQ/SeKC-Y7ceNI/AAAAAAAAAAM/HoJZzNOIAPM/S220/faceyourmanga.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://garysgambit.blogspot.com/2010/04/windows-2008-hyper-v-or-volume-shadow.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0cFRnc_eip7ImA9WxFTEk0.&quot;"><id>tag:blogger.com,1999:blog-7078870535119697836.post-7454149004946219530</id><published>2010-03-15T12:13:00.001Z</published><updated>2010-04-02T10:36:57.942+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-04-02T10:36:57.942+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Windows Server 2008" /><category scheme="http://www.blogger.com/atom/ns#" term="Microsoft" /><category scheme="http://www.blogger.com/atom/ns#" term="Hyper-V" /><title>2008 Server Freeze, Hyper-V or Volume Shadow Copy Bug?</title><content type="html">&lt;p&gt;We have been scratching our heads over a very strange problem for the last 4 weeks which causes two new servers to lock up for up to 2 hours after logging on after a reboot. They’re running Windows 2008 R2 with Hyper-V and Windows Server Backup roles installed.&lt;/p&gt;  &lt;p&gt;After trying plenty of ideas to eliminate the problem it was pointed out to us by a Microsoft support guy that our System hive file was 343MB in size. It’s only supposed to be 15 to 20MB. I exported it as an ASCII file from regedit and opened it in Notepad. I counted &lt;strong&gt;24,000&lt;/strong&gt; entries for VSS Snapshot devices! When Windows boots it tries to process 24,000 devices which causes it to choke killing the server for two hours – although the VMs limp on underneath and the host responds to pings but both the remote and local console is completely frozen.&lt;/p&gt;  &lt;p&gt;Example registry entry:&lt;/p&gt;  &lt;p&gt;&lt;font color="#ffff00" face="Courier"&gt;[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{533C5B84-EC70-11D2-9505-00C04F79DE2F}\0349]      &lt;br /&gt;&amp;quot;InfPath&amp;quot;=&amp;quot;volsnap.inf&amp;quot;       &lt;br /&gt;&amp;quot;InfSection&amp;quot;=&amp;quot;volume_snapshot_install&amp;quot;       &lt;br /&gt;&amp;quot;InfSectionExt&amp;quot;=&amp;quot;.NTAMD64&amp;quot;       &lt;br /&gt;&amp;quot;ProviderName&amp;quot;=&amp;quot;Microsoft&amp;quot;       &lt;br /&gt;&amp;quot;DriverDateData&amp;quot;=hex:00,80,8c,a3,c5,94,c6,01       &lt;br /&gt;&amp;quot;DriverDate&amp;quot;=&amp;quot;6-21-2006&amp;quot;       &lt;br /&gt;&amp;quot;DriverVersion&amp;quot;=&amp;quot;6.1.7600.16385&amp;quot;       &lt;br /&gt;&amp;quot;MatchingDeviceId&amp;quot;=&amp;quot;storage\\volumesnapshot&amp;quot;       &lt;br /&gt;&amp;quot;DriverDesc&amp;quot;=&amp;quot;Generic volume shadow copy&amp;quot;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Trying to delete the snapshots using vssadmin from the command prompt threw this error: “&lt;font color="#ffff00"&gt;Error: Snapshots were found, but they were outside of your allowed context.&amp;#160; Try removing them with the backup application which created them.&lt;/font&gt;”&lt;/p&gt;  &lt;p&gt;So the question is what is causing 1000’s of VSS (volume shadow copy) snapshots to be created? A clue was found in the system event log when Windows Server Backups runs: “&lt;font color="#ffff00"&gt;Failed to delete the shadow copy (VSS snapshot) set with id '1A1938A0-1590-4BF4-8173-20DF5FD69E36' in the running virtual machine 'MGT01': Unspecified error (0x80004005). (Virtual machine ID A3F941F1-ED7F-48E9-9CD7-CB7C28A6604A)&lt;/font&gt;”&lt;/p&gt;  &lt;p&gt;We’re using Windows Server Backup (WSB) to take incremental backups every 30 minutes for a bare metal restore of the host and its Virtual Machines. That’s 48 backups a day of 14 VHDs for 42 days that the servers have been running for. Do the maths and that comes to 28,000 VSS snapshots. Taking into account that some backups failed to run and we stopped backups for a few hours here and there, this tallies with the 24,000 devices I counted in the registry. Bingo!&lt;/p&gt;  &lt;p&gt;So the bottom line is that the VSS writer creates a snapshot for each VHD at backup time but for some reason isn’t deleting the entries from the registry, although it is deleting the actual snapshots otherwise we’d have run out of disk space by now. Everything points to a bug in either the VSS writer or perhaps WSB or Hyper-V. They’re so tightly integrated during the backup process it’s hard to say which of the 3 is the culprit.&lt;/p&gt;  &lt;p&gt;Since this problem is reoccurring on &lt;strong&gt;&lt;u&gt;two&lt;/u&gt;&lt;/strong&gt; new servers from Dell we are sure this isn’t a one-off freak incident. There is only &lt;a href="http://social.technet.microsoft.com/Forums/en-US/winserverhyperv/thread/07f406c8-678e-4609-b535-7dc2073ecaa0"&gt;1 other similar incident&lt;/a&gt; reported on the web and that was a year ago on a HP server using BackupExec with the Hyper-V aware option. I’m waiting for Microsoft to get back to me, although I’ve been warned that even if they admit it’s a bug it could take a long time to produce a fix. We’d love to know why 1000’s of people who use Hyper-V and take frequent backups aren’t experiencing the same problem. There is no other software installed on the host apart from standard Dell drivers. Weird!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7078870535119697836-7454149004946219530?l=garysgambit.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GarysGambit?a=h0XwXsKGffo:k26TzUXwy_4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GarysGambit?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GarysGambit/~4/h0XwXsKGffo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://garysgambit.blogspot.com/feeds/7454149004946219530/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://garysgambit.blogspot.com/2010/03/2008-server-freeze-hyper-v-or-volume.html#comment-form" title="14 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7078870535119697836/posts/default/7454149004946219530?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7078870535119697836/posts/default/7454149004946219530?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GarysGambit/~3/h0XwXsKGffo/2008-server-freeze-hyper-v-or-volume.html" title="2008 Server Freeze, Hyper-V or Volume Shadow Copy Bug?" /><author><name>Gary Fenton</name><uri>http://www.blogger.com/profile/02616344210671605355</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_6lC_k5CzsBQ/SeKC-Y7ceNI/AAAAAAAAAAM/HoJZzNOIAPM/S220/faceyourmanga.jpg" /></author><thr:total>14</thr:total><feedburner:origLink>http://garysgambit.blogspot.com/2010/03/2008-server-freeze-hyper-v-or-volume.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkYMSH49fyp7ImA9WxNUFEo.&quot;"><id>tag:blogger.com,1999:blog-7078870535119697836.post-3849861296272081835</id><published>2009-11-06T02:18:00.001Z</published><updated>2009-11-06T02:23:09.067Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-06T02:23:09.067Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SQL" /><category scheme="http://www.blogger.com/atom/ns#" term="ColdFusion" /><title>CF Admin SQL injection flaw</title><content type="html">&lt;p&gt;&lt;a href="http://www.mischefamily.com/nathan/index.cfm/2009/11/5/SQL-Injection-Consideration"&gt;Nathan Mische has blogged&lt;/a&gt; about a surprising ‘flaw’ in the ColdFusion Administrator that’s supposed to allow you to disable SQL commands coming from CF such as delete, drop, alter, update, etc. Apparently this is ineffective against multi-line SQL injection attacks – the most common sort of injection.&lt;/p&gt;  &lt;p&gt;Perhaps ‘flaw’ is the wrong word, but these settings do lead you to believe that any sql with delete, drop, etc in it would be prevented from being sent to the database.&lt;/p&gt;  &lt;p&gt;The bottom line is to always use cfqueryparam or stored procedures and sanitise user input from forms and urls. Don’t trust users – assume they’re all up to no good! ;-)&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7078870535119697836-3849861296272081835?l=garysgambit.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GarysGambit?a=ghTIhgkG9Pw:848d85ivckY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GarysGambit?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GarysGambit/~4/ghTIhgkG9Pw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://garysgambit.blogspot.com/feeds/3849861296272081835/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://garysgambit.blogspot.com/2009/11/cf-admin-sql-injection-flaw.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7078870535119697836/posts/default/3849861296272081835?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7078870535119697836/posts/default/3849861296272081835?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GarysGambit/~3/ghTIhgkG9Pw/cf-admin-sql-injection-flaw.html" title="CF Admin SQL injection flaw" /><author><name>Gary Fenton</name><uri>http://www.blogger.com/profile/02616344210671605355</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_6lC_k5CzsBQ/SeKC-Y7ceNI/AAAAAAAAAAM/HoJZzNOIAPM/S220/faceyourmanga.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://garysgambit.blogspot.com/2009/11/cf-admin-sql-injection-flaw.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0QNQ3o-fyp7ImA9WxNXGEg.&quot;"><id>tag:blogger.com,1999:blog-7078870535119697836.post-5516642203660581802</id><published>2009-10-06T12:30:00.001+01:00</published><updated>2009-10-06T19:56:32.457+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-06T19:56:32.457+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ColdFusion" /><title>ColdFusion 9 is out. Upgrade? Not this time.</title><content type="html">&lt;p&gt;After nearly a year of alpha and beta testing the latest release has hit the streets. It’s available to download as a 30 day trial or as a free developer edition (limited to 2 IP addresses as per usual). The &lt;a href="http://www.adobe.com/products/coldfusion/features/"&gt;new features&lt;/a&gt; are listed on the Adobe site.&lt;/p&gt;  &lt;p&gt;The &lt;a href="http://www.terrenceryan.com/blog/post.cfm/coldfusion-9-eula-changes"&gt;license has changed for the better&lt;/a&gt; which allows you to run the full version of CF on your development and test environments for free providing you’ve bought a new CF9 license for your production environment. Therefore if you were previously limiting your dev and test systems to 2 pesky IPs you can lift that restriction, but the new license only applies to CF9, it cannot be retrospectively applied if you own CF8 and earlier editions. Well done Adobe!&lt;/p&gt;  &lt;p&gt;The question everyone is asking is shall I upgrade our existing servers to CF9? I made the decision a while ago to skip this edition. You have to ask yourself what business benefits it will bring to the table and if that will enhance your apps sufficiently to pay for itself. Here’s my take on the new features. Obviously it’s different for every app and every business, but needless to say &lt;strong&gt;&lt;font color="#ffff00"&gt;our new apps being launched in the months to come will be using CF9&lt;/font&gt;&lt;/strong&gt;, but our existing ones will not.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;cfspreadsheet&lt;/strong&gt;: Let’s you read from Excel files and update them too. Good if you work with xls files. I can see benefits for intranet apps. Previously to create xls files you had to create data as an HTML table but CF8 was unable to read or update existing Excel created files.      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Word to PDF&lt;/strong&gt;: I really like this conversion facility but it does not officially support Office 2007 or 2010 docx files which is somewhat of an oversight. However, it will make a reasonable attempt at converting them but chokes on the more elaborate docx files &lt;a href="http://cfsearching.blogspot.com/2009/07/cf9-beta-convert-doc-files-to-pdf-if.html"&gt;as explained in this blog&lt;/a&gt;. OpenOffice needs to be installed for this feature to work. (While OpenOffice is free I’m not comfortable installing a bloaty desktop app onto production servers)      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;ColdFusion as a service&lt;/strong&gt;: Access CF features such as cfhart, cfdocument, cfimages, etc, as a web service. Perfect for offloading tasks to other servers or opening up CF features to .NET or PHP apps.      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Adobe AIR database synchronisation&lt;/strong&gt;: If you’re into AIR this sounds like a useful addition.      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Virtual file system&lt;/strong&gt;: Save files to RAM as if it were an ordinary hard drive. Good if you have a load of files that need to be regularly written to or read from or if your network drives are already a bottleneck for performance. Don’t forget all files in the virtual file system are wiped when the server is rebooted or crashes.      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Integration with CF Builder&lt;/strong&gt;: If you’ve tried the beta of Builder (the new IDE from Adobe) then it will work better if you have CF9. I don’t like Builder. Sorry. I wish they had enhanced Dreamweaver instead because I also need access to design tools as well as coding tools, plus DW has a very good GUI.      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;ORM&lt;/strong&gt;: It sounds clever – CF will interface with your database without having to write a single line of SQL. Admittedly I haven’t got into this too deeply but I fail to see how it can write SQL as intelligently as a human or work with the many complexities of our stored procedures and data intricacies. I like to know exactly what’s happening at the CF&amp;lt;&amp;gt;SQL layer so ORM would worry me. Maybe ORM is for non-enterprise apps and RAD? I’m sure someone will enlighten me.      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;New AJAX controls&lt;/strong&gt;: I have a real problem&amp;#160; with this. Why are Adobe wasting their time adding a CF layer for JavaScript when the JavaScript library becomes outdated within a matter of months? If developers use a highly flexible JavaScript framework such as jQuery (which is really easy to learn and oh so sexy) then they can always keep their apps up to date with the latest features instead of having to wait a year or two for the next CF update (which also updates the built-in Ext JS library). jQuery is less bloaty and give developers much finer control over ajaxy things, ready-to-go menus, slick UI panels and interactive data tables etc.      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;SharePoint integration&lt;/strong&gt;: This is fantastic if your business or client uses SharePoint. It makes it so much easier for CF apps to take part or become the hub of new SharePoint apps. My biggest client has made a massive move to SharePoint which would have got me excited if they hadn’t banished all non-Microsoft technology from their organisation. Doh.      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Server Manager&lt;/strong&gt;: Administrate multiple CF servers from a central console. Very useful if you have a large server farm or regularly tinker with the Administrator on a couple of servers. Definitely good for rolling out new CF servers. Otherwise &lt;a href="http://www.merlinmanager.com/"&gt;check out Merlin&lt;/a&gt;, an AIR based administrator for managing multiple servers running CF 7, 8 or 9.      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Enhanced Flash Remoting&lt;/strong&gt;: Never used Flash Remoting or Flex, I am not a Flash developer as I find using DHTML/jQuery fast and effective for enhancing the user experience, but obviously this is welcomed by those who use Flash Remoting. (I wonder what percentage of CF developers do use it?)      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Speed enhancements&lt;/strong&gt;: Other blogs have run tests to show that CF9 is faster than CF8. So if your current server is under strain maybe you can buy it some breathing room by upgrading? But realistically, new server hardware may be cheaper than a CF upgrade and if your server is 3+ years old a new Intel 55xx based server could quadruple your server’s speed and/or capacity. (We’re going down the hardware upgrade route)      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;64 bit Edition for CF Standard:&lt;/strong&gt; Yay!      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Cache enhancements:&lt;/strong&gt; The popular Ehcache technology is now integrated into CF. Rob Brooks-Bilson talks about this in detail over 4 blog entries so I’ll leave him to explain since he’s done such a fantastic job. &lt;a href="http://www.brooks-bilson.com/blogs/rob/index.cfm/2009/7/21/Caching-Enhancements-in-ColdFusion-9--Part-1-Why-Cache"&gt;Part 1&lt;/a&gt;. &lt;a href="http://www.brooks-bilson.com/blogs/rob/index.cfm/2009/7/29/Caching-Enhancements-in-ColdFusion-9--Part-2-Caching-Granularity"&gt;Part 2&lt;/a&gt;. &lt;a href="http://www.brooks-bilson.com/blogs/rob/index.cfm/2009/9/3/Caching-Enhancements-in-ColdFusion-9--Part-3-Caching-Architectures"&gt;Part 3&lt;/a&gt;. &lt;a href="http://www.brooks-bilson.com/blogs/rob/index.cfm/2009/9/21/Caching-Enhancements-in-ColdFusion-9--Part-4-Caching-Strategies--Eviction-Policies"&gt;Part 4&lt;/a&gt;.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Finally, Adobe have produced a &lt;a href="http://www.adobe.com/products/coldfusion/pdfs/cf9_feature_comparison_matrix_ue.pdf"&gt;useful product matrix&lt;/a&gt; showing the differences between CF7, 8 and 9 for both Standard and Enterprise editions of each version.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7078870535119697836-5516642203660581802?l=garysgambit.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GarysGambit?a=Y2075GpXpdE:H1T4B8HgjEE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GarysGambit?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GarysGambit/~4/Y2075GpXpdE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://garysgambit.blogspot.com/feeds/5516642203660581802/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://garysgambit.blogspot.com/2009/10/coldfusion-9-is-out-upgrade-not-this.html#comment-form" title="7 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7078870535119697836/posts/default/5516642203660581802?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7078870535119697836/posts/default/5516642203660581802?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GarysGambit/~3/Y2075GpXpdE/coldfusion-9-is-out-upgrade-not-this.html" title="ColdFusion 9 is out. Upgrade? Not this time." /><author><name>Gary Fenton</name><uri>http://www.blogger.com/profile/02616344210671605355</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_6lC_k5CzsBQ/SeKC-Y7ceNI/AAAAAAAAAAM/HoJZzNOIAPM/S220/faceyourmanga.jpg" /></author><thr:total>7</thr:total><feedburner:origLink>http://garysgambit.blogspot.com/2009/10/coldfusion-9-is-out-upgrade-not-this.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0QDSH8_fyp7ImA9WxNXEEg.&quot;"><id>tag:blogger.com,1999:blog-7078870535119697836.post-3719879596674292342</id><published>2009-09-27T12:36:00.001+01:00</published><updated>2009-09-27T12:36:19.147+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-27T12:36:19.147+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="jQuery" /><title>Validity – flexible jQuery form validation</title><content type="html">&lt;p&gt;I was looking for a form validation plugin for jQuery that offers enough flexibility to hook in to my own rather complex forms and existing JavaScript. After auditioning several plugins I came across &lt;a href="http://validity.thatscaptaintoyou.com/"&gt;Validity&lt;/a&gt; which has seriously impressed me.&lt;/p&gt;  &lt;p&gt;Validity, by Wyatt Allen, offers the key following features:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Built-in validators for email, number, url, date, range, length, etc. &lt;/li&gt;    &lt;li&gt;Equal(), distinct(), sum(), etc, methods for advance validation. &lt;/li&gt;    &lt;li&gt;Use jQuery selectors to create rules for which fields to validate and compare. &lt;/li&gt;    &lt;li&gt;Easily extendable using your own regular expressions or js functions. &lt;/li&gt;    &lt;li&gt;Fully chainable validation. e.g. $(&amp;quot;#lastname&amp;quot;).require().minLength(2).maxLength(40).nonHtml(); &lt;/li&gt;    &lt;li&gt;Optionally provide your own validation error messages. &lt;/li&gt;    &lt;li&gt;Multiple validation error display modes: Creates neat arrowed validation messages by each field with an error, or Modal mode, or Summary mode, or create your own! e.g. javascript text based alert, or outline error fields in red, or display errors at top of page, etc. &lt;/li&gt;    &lt;li&gt;Automatically picks up the name of each form field or use a friendly name with the title attribute. e.g. &amp;lt;input type=”text” id=”firstname” title=”First Name”&amp;gt; &lt;/li&gt;    &lt;li&gt;Validity can intercept the submit button or be called when you want it to (if you use ajax for example). &lt;/li&gt;    &lt;li&gt;Only 9KB in size &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Some example uses:&lt;/p&gt;  &lt;p&gt;&lt;font color="#ffff00"&gt;$(&amp;quot;#title&amp;quot;).require().minLength(25).maxLength(250);&lt;/font&gt;     &lt;br /&gt;The title field is required, min char length is 25 and max length is 250.&lt;/p&gt;  &lt;p&gt;&lt;font color="#ffff00"&gt;$(&amp;quot;#duration&amp;quot;).require().match(&amp;quot;integer&amp;quot;).range(1,400);      &lt;br /&gt;&lt;/font&gt;The duration field is required, must be an integer, and numbers from 1 to 400.&lt;/p&gt;  &lt;p&gt;&lt;font color="#ffff00"&gt;$(&amp;quot;#email,#email_confirm&amp;quot;).require().match('email').maxLength(70).equal(&amp;quot;Email addresses do not match&amp;quot;);&lt;/font&gt;     &lt;br /&gt;Applies to both the email and email confirmation fields, both required, must be a valid email address up to 70 chars, and must be equal to each other. My own error message will be shown if they are not equal.&lt;/p&gt;  &lt;p&gt;&lt;font color="#ffff00"&gt;$(&amp;quot;#postcode&amp;quot;).require().match(/^([a-z][a-z]?\d\d? ?\d[a-z][a-z])$/i,&amp;quot;Postcode is invalid&amp;quot;);&lt;/font&gt;     &lt;br /&gt;The postcode field is required and must match my own regex for UK postcode validation and will display my own message if it’s invalid.&lt;/p&gt;  &lt;p&gt;Here’s the &lt;a href="http://validity.thatscaptaintoyou.com/Demos/"&gt;documentation with a couple of little demos&lt;/a&gt;. The &lt;a href="http://validity.thatscaptaintoyou.com/"&gt;home page is here&lt;/a&gt; and you can &lt;a href="http://code.google.com/p/validity/downloads/list"&gt;download the plugin from Google Code&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Well done Wyatt, this is a brilliantly thought out plugin leaving ample room for developers to customise their own validators, messages, and display rendering. Perfect! :-)&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7078870535119697836-3719879596674292342?l=garysgambit.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GarysGambit?a=kjpS3rNGy_0:gZ5n5mH4fCg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GarysGambit?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GarysGambit/~4/kjpS3rNGy_0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://garysgambit.blogspot.com/feeds/3719879596674292342/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://garysgambit.blogspot.com/2009/09/validity-flexible-jquery-form.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7078870535119697836/posts/default/3719879596674292342?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7078870535119697836/posts/default/3719879596674292342?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GarysGambit/~3/kjpS3rNGy_0/validity-flexible-jquery-form.html" title="Validity – flexible jQuery form validation" /><author><name>Gary Fenton</name><uri>http://www.blogger.com/profile/02616344210671605355</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_6lC_k5CzsBQ/SeKC-Y7ceNI/AAAAAAAAAAM/HoJZzNOIAPM/S220/faceyourmanga.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://garysgambit.blogspot.com/2009/09/validity-flexible-jquery-form.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkUMRXcyeCp7ImA9WxNXGUk.&quot;"><id>tag:blogger.com,1999:blog-7078870535119697836.post-7151622714228060524</id><published>2009-09-06T14:35:00.002+01:00</published><updated>2009-10-07T19:31:24.990+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-07T19:31:24.990+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Windows 7" /><title>Windows 7 Annoyances &amp; Backups</title><content type="html">&lt;p&gt;Up until now Windows 7 was just running on my laptop, a non-critical machine I use to run presentations on. Now that the final code is available to developers and my shiny new Intel SSD “G2” drive has arrived I thought it was a perfect opportunity to upgrade my main desktop PC to Windows 7.&lt;/p&gt;  &lt;p&gt;It was a fresh install using the new SSD drive. It took 4 attempts before I had a stable install; the installer hung once, after one successful install the drive refused to boot up, the “repair Windows” option failed, yadda yadaa. 24 hours after it all appears to be working my fingers are still crossed.&lt;/p&gt;  &lt;p&gt;Now, onto the issue of this post. When I shut down my PC at night I want to carry on working where I left off the following day – at least I want all the folders to be open up at the same place. Therefore, on XP I had both these options checked in Tools/Folder Options:  “Restore previous folder windows at login” and “remember each folder’s view settings”. Windows XP obeyed this command like a faithful dog, but Windows 7 doesn’t play ball. On rebooting it opens all my previous windows &lt;strong&gt;on top of each other&lt;/strong&gt;, in a pile. What a mess! I then spend a minute rearranging them all, dragging them to their correct position and resizing them to how they should be. What a pain!&lt;/p&gt;  &lt;p&gt;Furthermore, Windows 7 forgets they layout options for each window. The option “remember each folder’s view settings” that was in XP is &lt;strong&gt;missing&lt;/strong&gt; in 7! A couple of my windows list files that I frequently access so I don’t want to see the navigation pane, just the file list. I use another window for managing files so I always want the navigation pane displayed. XP obliges by 7 is so stupid it can only remember 1 folder setting and applies it to all of them, so on reboot the windows are either all with navigation panes or without, not the customised mixture that XP used to respect.&lt;/p&gt;  &lt;p&gt;For those reasons I find Windows 7 very frustrating. Someone suggested using hibernate or suspend instead of shutting down. That may be okay if Windows doesn’t refuse to recover from hibernation, but it shows an error on resume and reboots.&lt;/p&gt;  &lt;p&gt;Remembering folder views and locations is a very, very simple function for an OS but Windows 7 has taken a huge leap backwards here. It does not compute. Windows 7 has been given the memory of a goldfish.&lt;/p&gt;  &lt;h3&gt;Backups – Aargh!&lt;/h3&gt;  &lt;p&gt;I want to back up my C (boot) drive which is 80GB onto an external 200GB drive. No, it can’t do that because Windows has decided that the backup has to include my D drive which is a massive 1TB internal drive. &lt;strong&gt;What?&lt;/strong&gt; I can’t back up my boot drive because Windows insists that the D drive is also included? How stupid is that. I do not want to back up my entire 1TB “D” drive, just the critical C drive.&lt;/p&gt;  &lt;p&gt;Admittedly I have installed non-essential apps onto the D drive such as Firefox, Visio and Dreamweaver, plus I changed the location of  My Documents from the C drive to the D drives to save disk space on the precious 80GB SSD. But those files aren’t critical to restoring Windows should the need arrise.&lt;/p&gt;  &lt;p&gt;I’m now testing out other backup options. My key requirements are:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Volume Shadow Copy – so open files can be backed up like Outlook’s .pst files &lt;/li&gt;    &lt;li&gt;Back up specific files from any of my drives without having to backup the entire drive &lt;/li&gt;    &lt;li&gt;Option to back up files into zip files so the backups are completely independent and not proprietary files formats. &lt;/li&gt;    &lt;li&gt;Additionally create an image backup of a drive (to quickly restore my boot drive onto another drive should it die) &lt;/li&gt;    &lt;li&gt;Incremental backups so only changes are backed up on a daily basis &lt;/li&gt;    &lt;li&gt;Windows 7 bit-bit compatible &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://www.educ.umu.se/~cobian/cobianbackup.htm"&gt;Cobian Backup&lt;/a&gt; has always been perfect for file backups (it’s a brilliant free app) but sadly it’s only a 32 bit app which means it can’t do volume shadow copies on a 64 bit OS – which is what I’m now running to utilise the full 4 GB of ram in my PC.&lt;/p&gt;  &lt;p&gt;So I will now evaluate the following free or cheap alternatives:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;a href="http://www.acronis.co.uk/homecomputing/products/trueimage/"&gt;Acronis True Image Home 2009&lt;/a&gt; (commercial, £40/$60, or &lt;a href="http://www.software.co.uk/Products/Acronis_True_Image_Home_2009.html"&gt;half price here&lt;/a&gt;) &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.gfi.com/backup-hm"&gt;GFI Backup Home Edition&lt;/a&gt; (free) &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.macrium.com/reflectfree.asp"&gt;Macrium Reflect Free Edition&lt;/a&gt; (free) &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.macrium.com/"&gt;Macrium Reflect&lt;/a&gt; (commercial, £20/$30) &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Acronis is not yet fully Windows 7 compatible which is a shame as it has some very powerful features. GFI Backup sounds great as a file-only backup solution (it doesn’t do drive imaging, same as Cobian Backup). Macrium Reflect (commercial) does both file and disk imaging but backs up to its own proprietary file format.&lt;/p&gt;  &lt;p&gt;I think I may use two apps for a separate disk imaging and file backup strategy.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7078870535119697836-7151622714228060524?l=garysgambit.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GarysGambit?a=A2xDDq0aqeQ:2LN9SEMjmsc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GarysGambit?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GarysGambit/~4/A2xDDq0aqeQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://garysgambit.blogspot.com/feeds/7151622714228060524/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://garysgambit.blogspot.com/2009/09/windows-7-annoyances-backups.html#comment-form" title="6 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7078870535119697836/posts/default/7151622714228060524?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7078870535119697836/posts/default/7151622714228060524?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GarysGambit/~3/A2xDDq0aqeQ/windows-7-annoyances-backups.html" title="Windows 7 Annoyances &amp;amp; Backups" /><author><name>Gary Fenton</name><uri>http://www.blogger.com/profile/02616344210671605355</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_6lC_k5CzsBQ/SeKC-Y7ceNI/AAAAAAAAAAM/HoJZzNOIAPM/S220/faceyourmanga.jpg" /></author><thr:total>6</thr:total><feedburner:origLink>http://garysgambit.blogspot.com/2009/09/windows-7-annoyances-backups.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C04GQ3oycCp7ImA9WxNSGE0.&quot;"><id>tag:blogger.com,1999:blog-7078870535119697836.post-3944117949752863819</id><published>2009-09-01T11:45:00.001+01:00</published><updated>2009-09-01T11:45:22.498+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-01T11:45:22.498+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ColdFusion" /><title>8x ColdFusion Hot Fixes in just 2 weeks!</title><content type="html">&lt;p&gt;First there were &lt;a href="http://www.adobe.com/support/security/bulletins/apsb09-12.html"&gt;7 hot fixes rolled&lt;/a&gt; out on the same day on 17th August – all to do with security vulnerabilities. Adobe’s documentation was sparse causing problems and &lt;a href="http://forta.com/blog/index.cfm/2009/8/17/ColdFusion-And-JRun-Security-Hotfixes-Posted"&gt;lots of questions to be raised&lt;/a&gt; by early adaptors of the hot fixes.&lt;/p&gt;  &lt;p&gt;Today, 1st Sep, &lt;a href="http://kb2.adobe.com/cps/511/cpsid_51180.html"&gt;Cumulative Hot Fix 3&lt;/a&gt; has been released for CF 8.01 that fixes 21 new bugs as well as the fixes contained in the previous 2 cumulative hot fixes. This does &lt;strong&gt;not&lt;/strong&gt; include fixes for the aforementioned 7 security vulnerabilities.&lt;/p&gt;  &lt;p&gt;I can’t say I’ve encountered any of the bugs listed for Hot Fix 3 and they’re not security related so we’ll put some thought into whether to deploy it or not as I’m a great believer in “if it ain’t broke, don’t fix it”. Do read through the list of fixes to see if any issues are relevant to you. Maybe some of the descriptions will explain some strange errors you’ve encountered with your apps?&lt;/p&gt;  &lt;p&gt;I notice there’s no fix for the &lt;a href="http://garysgambit.blogspot.com/2009/04/cfmail-spool-bug-in-coldfusion-801.html"&gt;mail spool bug&lt;/a&gt; I reported over a year ago.&lt;/p&gt;  &lt;p&gt;Now, back to the 7 security hot fixes. The original documentation was, let’s face it, terrible. But on 28th Aug Adobe updated the text to make it clear that hot fix 1876 must only be applied if you’re running Apache. Do not apply it if you’re running IIS which is what I did on a test box. Luckily I held back on applying it to the prd servers before receiving confirmation that it’s not for IIS. The test box happily accepted the hot fix anyway and doesn’t seem any the worse for it.&lt;/p&gt;  &lt;p&gt;Hot fix 1875 and 1878 are byte for byte absolutely identical which is really weird. Why didn’t Adobe roll them into the same hot fix instead of listing them separately and making people install two hot fix files which are the same in all but file name?&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7078870535119697836-3944117949752863819?l=garysgambit.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GarysGambit?a=tJFTwnUskxs:4RsAGbIpXqY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GarysGambit?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GarysGambit/~4/tJFTwnUskxs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://garysgambit.blogspot.com/feeds/3944117949752863819/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://garysgambit.blogspot.com/2009/09/8x-coldfusion-hot-fixes-in-just-2-weeks.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7078870535119697836/posts/default/3944117949752863819?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7078870535119697836/posts/default/3944117949752863819?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GarysGambit/~3/tJFTwnUskxs/8x-coldfusion-hot-fixes-in-just-2-weeks.html" title="8x ColdFusion Hot Fixes in just 2 weeks!" /><author><name>Gary Fenton</name><uri>http://www.blogger.com/profile/02616344210671605355</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_6lC_k5CzsBQ/SeKC-Y7ceNI/AAAAAAAAAAM/HoJZzNOIAPM/S220/faceyourmanga.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://garysgambit.blogspot.com/2009/09/8x-coldfusion-hot-fixes-in-just-2-weeks.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkIHQ3o6eCp7ImA9WxJVE08.&quot;"><id>tag:blogger.com,1999:blog-7078870535119697836.post-7270480657076421995</id><published>2009-06-30T02:15:00.001+01:00</published><updated>2009-06-30T02:15:32.410+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-30T02:15:32.410+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Mobile Phones" /><title>Universal Phone Chargers for Europe</title><content type="html">&lt;p&gt;It’s not often that something the EU (European Union) does is so clearly a step in the right direction. So what did they do? They got the major phone manufacturers to agree to a single type of phone charger and this will be implemented in every phone by 1st January 2010. Whoo hoo!&lt;/p&gt;  &lt;p&gt;They went with the micro USB connector which is already a fairly well used by many phones. Being USB it can carry data as well as power, so connecting your new phone to your computer won’t require a new cable either.&lt;/p&gt;  &lt;p&gt;The EU wants to cut down on the number of mains chargers that are made and then chucked away. But since every new phone comes with a mains charger how will that change anything? It’s good for the consumer as we’d just need one mains charger plugged in to recharge any phone in the house. About frigging time.&lt;/p&gt;  &lt;p&gt;Now how about standardising electrical plugs and sockets next? I propose the British system is adopted by Europe because it’s the safest with a built-in fuse, built-in earth, and the socket’s pin holes are closed so little fingers or children poking things into the holes can’t reach the live connection. The holes are automatically opened when a plug is pushed in; the earth pin is slightly longer, it mechanically opens the live and neutral pin holes. Sometimes when I buy new electrical items it comes with 2 different cables (for Europe/UK or US/UK) and sadly one has to be thrown away. If cables were made from liquorish I wouldn’t complain.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7078870535119697836-7270480657076421995?l=garysgambit.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GarysGambit?a=glzYst0eehc:GyRbfq2riho:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GarysGambit?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GarysGambit/~4/glzYst0eehc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://garysgambit.blogspot.com/feeds/7270480657076421995/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://garysgambit.blogspot.com/2009/06/universal-phone-chargers-for-europe.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7078870535119697836/posts/default/7270480657076421995?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7078870535119697836/posts/default/7270480657076421995?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GarysGambit/~3/glzYst0eehc/universal-phone-chargers-for-europe.html" title="Universal Phone Chargers for Europe" /><author><name>Gary Fenton</name><uri>http://www.blogger.com/profile/02616344210671605355</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_6lC_k5CzsBQ/SeKC-Y7ceNI/AAAAAAAAAAM/HoJZzNOIAPM/S220/faceyourmanga.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://garysgambit.blogspot.com/2009/06/universal-phone-chargers-for-europe.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkQGRX09fip7ImA9WxJRGUg.&quot;"><id>tag:blogger.com,1999:blog-7078870535119697836.post-1913130997620922411</id><published>2009-05-22T02:05:00.001+01:00</published><updated>2009-05-22T02:05:24.366+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-05-22T02:05:24.366+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Microsoft" /><title>Windows Live Messenger makes me cry</title><content type="html">&lt;p&gt;For years I’ve had MSN Messenger installed so I can chat with friends and family. Recently Microsoft release a new version, Windows Live Messenger 2009. (Does it hurt them too much to think of a short name I can spit out in just a couple of syllables?)&lt;/p&gt;  &lt;p&gt;I installed it and it crashed every single time I tried to log in. There was no facility to report the bug yet alone take out my frustration with some anonymous support guy.&lt;/p&gt;  &lt;p&gt;6 or 8 weeks had passed and I thought surely they have fixed the bug by now. I can’t be the only user out of a million who fell foul of the 2009 release. So I installed it again from their “Essentials” online installer and BAM! It crashed again. Aaargh!&lt;/p&gt;  &lt;p&gt;My attempt to defy Microsoft by uninstalling Messenger was blocked by the small fact that I couldn’t find an uninstall option anywhere on my computer. Nothing in the Start menu and nothing in Add/Remove Programs. Oh how I despise thee. For art thee friend or foe? I really do wonder sometimes.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7078870535119697836-1913130997620922411?l=garysgambit.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GarysGambit?a=AI-yQBBFmkQ:Rpslk8c3wIw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GarysGambit?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GarysGambit/~4/AI-yQBBFmkQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://garysgambit.blogspot.com/feeds/1913130997620922411/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://garysgambit.blogspot.com/2009/05/windows-live-messenger-makes-me-cry.html#comment-form" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7078870535119697836/posts/default/1913130997620922411?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7078870535119697836/posts/default/1913130997620922411?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GarysGambit/~3/AI-yQBBFmkQ/windows-live-messenger-makes-me-cry.html" title="Windows Live Messenger makes me cry" /><author><name>Gary Fenton</name><uri>http://www.blogger.com/profile/02616344210671605355</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_6lC_k5CzsBQ/SeKC-Y7ceNI/AAAAAAAAAAM/HoJZzNOIAPM/S220/faceyourmanga.jpg" /></author><thr:total>4</thr:total><feedburner:origLink>http://garysgambit.blogspot.com/2009/05/windows-live-messenger-makes-me-cry.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEYFQXY9fSp7ImA9WxJSF04.&quot;"><id>tag:blogger.com,1999:blog-7078870535119697836.post-3578178189379101790</id><published>2009-05-07T23:41:00.001+01:00</published><updated>2009-05-07T23:41:50.865+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-05-07T23:41:50.865+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Windows 7" /><title>Windows 7 RC downgraded my graphics</title><content type="html">&lt;p&gt;After battling through an incompatibility problem with &lt;a href="http://www.avg.com"&gt;AVG&lt;/a&gt; after upgrading from Vista (spit!), I was very pleased with Windows 7. It’s performance, looks and usability have all been improved.&lt;/p&gt;  &lt;p&gt;Windows 7 rated my graphics card (ATI X1700 built into the laptop) as 4.4 for “Graphics” which is pretty good. Then I was alerted to some updates including one for ATI graphics which was unexpected. After the update and a reboot I re-ran the performance test and was astonished that it downgraded my respectable 4.4 rating to a measly 2.1. I ran it again to check and it was the same.&lt;/p&gt;  &lt;p&gt;The “Gaming Graphics” rating remained at 3.3. So Windows 7 after the update reckons my card is more capable of 3D gaming that it is of moving 2D windows around the screen.&lt;/p&gt;  &lt;p&gt;The most annoying thing is, Microsoft removed the reporting tool from the release candidate so I can’t inform Microsoft about this problem. Like everyone else I just have to blog about RC problems instead.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7078870535119697836-3578178189379101790?l=garysgambit.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GarysGambit?a=Xl3y-EJNj44:x4rNNoq3x_A:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GarysGambit?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GarysGambit/~4/Xl3y-EJNj44" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://garysgambit.blogspot.com/feeds/3578178189379101790/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://garysgambit.blogspot.com/2009/05/windows-7-rc-downgraded-my-graphics.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7078870535119697836/posts/default/3578178189379101790?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7078870535119697836/posts/default/3578178189379101790?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GarysGambit/~3/Xl3y-EJNj44/windows-7-rc-downgraded-my-graphics.html" title="Windows 7 RC downgraded my graphics" /><author><name>Gary Fenton</name><uri>http://www.blogger.com/profile/02616344210671605355</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_6lC_k5CzsBQ/SeKC-Y7ceNI/AAAAAAAAAAM/HoJZzNOIAPM/S220/faceyourmanga.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://garysgambit.blogspot.com/2009/05/windows-7-rc-downgraded-my-graphics.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEAAQXYzeip7ImA9WxJSE0k.&quot;"><id>tag:blogger.com,1999:blog-7078870535119697836.post-8845300333223740113</id><published>2009-05-03T11:32:00.001+01:00</published><updated>2009-05-03T11:32:20.882+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-05-03T11:32:20.882+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Twitter" /><title>Twitter drives me cuckoo</title><content type="html">&lt;p&gt;I had deliberately avoided using Twitter because I couldn’t understand why anyone would want to micro-blog every mundane thought or action, and even more so why would anyone want to be bombarded by other people’s mundane thoughts?&lt;/p&gt;  &lt;p&gt;You’ve got to get your hands dirty to fully understand some things in life so I rolled up my sleeves and set up a Twitter account and installed what looks like one of the best Twitter desktop clients, &lt;a href="http://www.tweetdeck.com"&gt;TweetDeck&lt;/a&gt;, which uses &lt;a href="http://www.adobe.com/products/air/"&gt;Adobe AIR&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;I became a follower of about 15 people, quite a lot&amp;#160; I thought at the time, until I saw that others were following 100’s of people. Only 3 of my 12 regularly tweeted, sometimes several tweets each per hour. Where do these people get the time from to stop what they’re doing and compose a 140 character thought to share with others? Perhaps they were unemployed or had a very dull office job. Not at all, they’re very busy people working in the IT world, yet they have developed a mental condition that I couldn’t fathom which had become a compulsion to tweet about what they’re doing right now, what they think about something, or where they’re about to go. (Guys, if you’re reading this then I apologise, but at least your flames will be restricted to 140 characters!!! Ha-ha-ha! ;-)&lt;/p&gt;  &lt;p&gt;TweetDeck interrupted my train of thought throughout the day alerting me to new tweets. About 1 a day turned out to be interesting, pointing to a URL containing something useful to my job or interesting in my capacity as a concerned citizen.&lt;/p&gt;  &lt;p&gt;Celebrities clearly enjoy Twitter as it gives them a platform to perform and to be adored for every waking hour in their life. And fans who live and breath their idol can relish in their activities and musings all day and every day. Stephen Fry is one of the most followed twitterers with nearly half a million people clinging to his occasionally amusing tweets. There was that incident a few months ago where he was stuck in a lift (elevator) and twittered about it from his mobile phone and drew some optimism from his followers who replied to give him support during that very long 30 minute experience, stuck in a confined space with a load of strangers who no doubt started to smell after a short while.&lt;/p&gt;  &lt;p&gt;My conclusion is pretty much what I expected before trying Twitter. If you didn’t have a compulsive disorder before using it then you’ll probably develop one after a week. It’s like drilling holes in your life, you’ll leak valuable time during the course of the day achieving very little by twittering or reading every tweet flashed up at you.&lt;/p&gt;  &lt;p&gt;I reckon Twitter will be a phase, a fashion lasting a couple of years, or it will mature into something more sensible that can be better controlled or filtered or used in applications for a genuine practical purpose. Speaking of which, there’s a &lt;a href="http://cftwitterlib.riaforge.org/"&gt;ColdFusion Twitter library&lt;/a&gt; that looks very good which gave me an idea of using Twitter in a constructive way for an existing application.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7078870535119697836-8845300333223740113?l=garysgambit.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GarysGambit?a=yzpaVx-Tmmg:hjXpiGR5tA0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GarysGambit?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GarysGambit/~4/yzpaVx-Tmmg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://garysgambit.blogspot.com/feeds/8845300333223740113/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://garysgambit.blogspot.com/2009/05/twitter-drives-me-cuckoo.html#comment-form" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7078870535119697836/posts/default/8845300333223740113?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7078870535119697836/posts/default/8845300333223740113?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GarysGambit/~3/yzpaVx-Tmmg/twitter-drives-me-cuckoo.html" title="Twitter drives me cuckoo" /><author><name>Gary Fenton</name><uri>http://www.blogger.com/profile/02616344210671605355</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_6lC_k5CzsBQ/SeKC-Y7ceNI/AAAAAAAAAAM/HoJZzNOIAPM/S220/faceyourmanga.jpg" /></author><thr:total>3</thr:total><feedburner:origLink>http://garysgambit.blogspot.com/2009/05/twitter-drives-me-cuckoo.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkEEQX0-eip7ImA9WxVaGU8.&quot;"><id>tag:blogger.com,1999:blog-7078870535119697836.post-8174820816599666954</id><published>2009-04-16T23:19:00.001+01:00</published><updated>2009-04-16T23:23:20.352+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-16T23:23:20.352+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ColdFusion" /><title>3 CFML Engines, a hard choice to choose</title><content type="html">&lt;p&gt;With 3 great CFML engines to choose from, the choice for developers can be a painful one. Torn between &lt;a href="http://www.adobe.com/products/coldfusion/"&gt;Adobe ColdFusion&lt;/a&gt;, &lt;a href="http://www.getrailo.com/"&gt;Railo 3.1&lt;/a&gt; and &lt;a href="http://www.openbluedragon.org/"&gt;Open BlueDragon&lt;/a&gt;? Yeah, me too.&lt;/p&gt;  &lt;p&gt;The core CFML tags and functions are well supported by all 3, with mostly the bleeding edge features that separate them along with the support options if you’re concerned with needing expert help if you find a bug or quirk that becomes a showstopper.&lt;/p&gt;  &lt;p&gt;The other consideration is the platform you have to host the CFML engine. Adobe ColdFusion is well supported by hosting companies if you’re not hosting it yourself, but the others have limited options at the moment.&lt;/p&gt;  &lt;p&gt;&lt;img title="Open BlueDragon on Google Apps Engine" style="border-right: 0px; border-top: 0px; display: inline; margin-left: 0px; border-left: 0px; margin-right: 0px; border-bottom: 0px" height="188" alt="Open BlueDragon on Google Apps Engine" src="http://lh4.ggpht.com/_6lC_k5CzsBQ/Seeu1P5ER0I/AAAAAAAAACA/c2x0eLsdpVk/openbdongoogle%5B14%5D.jpg?imgmax=800" width="278" align="right" border="0" /&gt;UPDATE: I just read that OpenBD can run on the Google Apps Engine! &lt;a href="http://vbonfanti.appspot.com/index.cfm"&gt;Live demo!&lt;/a&gt; Look at the appserver value. (It’s not available on there yet… work in progress…)&lt;/p&gt;  &lt;p&gt;Most of my projects are self-hosted so I don’t care about the platform, I just need stability, easy-to-get support (free or paid-for), and a promising development roadmap.&lt;/p&gt;  &lt;p&gt;I’m not quite finished… each CFML engine have their own unique features. Take Railo with its CFVIDEO tag for example, for someone that could be a deciding factor. Creating YouTube sites could be as easy as pie. Open BlueDragon works natively with Amazon’s SimpleDB and can pull &amp;amp; push files to/from Amazon S3. ColdFusion 8 has built-in MS Exchange support (which is cool) and AJAX stuff which I don’t really care for. jQuery is the way to go. :-) But ColdFusion 9 is scheduled to be released by the end of the year and will arguably leapfrog the other two with a ton of new features.&lt;/p&gt;  &lt;p&gt;I haven’t been too happy with the support from Adobe when I discover bugs and their 2-year product cycle means some issues don’t get addressed for a long time, although their intermediate patches are warmly welcomed. &lt;/p&gt;  &lt;h4&gt;A price to pay…&lt;/h4&gt;  &lt;p&gt;Then there’s the pricing issue. Sure, £6000/$7500 isn’t a massive price for big companies wanting to run with CF Enterprise, but small companies or personally financed start-ups can’t chuck that sort of money into application software when it costs the same amount to purchase new server hardware and host it for 4 years. Even on the enterprise level if you need to expand a cluster and whack in an extra web server it’s £1000/$1500 for the hardware and then £6000/$7500 on top. A large organisation would still ask why it’s costing that much to pop in an extra server.&lt;/p&gt;  &lt;p&gt;The current economic climate has put pressure on many businesses to cancel or scale back on projects and the awful £/$ exchange rate has made CF &lt;strong&gt;a lot&lt;/strong&gt; more expensive in the UK. So maybe now is the time to look closely the open source CFML engines. &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7078870535119697836-8174820816599666954?l=garysgambit.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GarysGambit?a=B4k0eKFlj3g:xy5-8VnOFR4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GarysGambit?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GarysGambit/~4/B4k0eKFlj3g" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://garysgambit.blogspot.com/feeds/8174820816599666954/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://garysgambit.blogspot.com/2009/04/3-cfml-engines-hard-choice-to-choose.html#comment-form" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7078870535119697836/posts/default/8174820816599666954?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7078870535119697836/posts/default/8174820816599666954?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GarysGambit/~3/B4k0eKFlj3g/3-cfml-engines-hard-choice-to-choose.html" title="3 CFML Engines, a hard choice to choose" /><author><name>Gary Fenton</name><uri>http://www.blogger.com/profile/02616344210671605355</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_6lC_k5CzsBQ/SeKC-Y7ceNI/AAAAAAAAAAM/HoJZzNOIAPM/S220/faceyourmanga.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh4.ggpht.com/_6lC_k5CzsBQ/Seeu1P5ER0I/AAAAAAAAACA/c2x0eLsdpVk/s72-c/openbdongoogle%5B14%5D.jpg?imgmax=800" height="72" width="72" /><thr:total>3</thr:total><feedburner:origLink>http://garysgambit.blogspot.com/2009/04/3-cfml-engines-hard-choice-to-choose.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkUEQXc9fip7ImA9WxVaGEk.&quot;"><id>tag:blogger.com,1999:blog-7078870535119697836.post-2038999424671318350</id><published>2009-04-15T23:50:00.006+01:00</published><updated>2009-04-16T02:10:00.966+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-16T02:10:00.966+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SQL" /><title>Optimal SQL to page through large record set</title><content type="html">&lt;p&gt;This is a tip for web application developers who want to page through results coming back from a MS SQL database. If there are 100 or 500 records coming back and you just want to show 25 at a time to the user then you can achieve that through your application code (CFML, PHP, etc). But what if there are 1000’s of records, it’s deeply inefficient to request that many records from your database if you only want to display 25 every time the user requests the next page, or jumps forwards several pages. If you want the results to be ordered by a user-defined column and not by the Row ID then the solution may not be obvious.&lt;/p&gt;  &lt;p&gt;MySQL can use limit(start,count) but MS SQL doesn’t support that. Someone suggested using a memory table, someone else suggested a cursor. A bit of Googling revealed MS SQL 2005 onwards has a new function called row_number(). Here’s how it works in this example:&lt;/p&gt;&lt;br /&gt;&lt;pre class="brush: sql; gutter: false;"&gt;&lt;br /&gt;SELECT * FROM (&lt;br /&gt; SELECT row_number() over (&lt;br /&gt;  order by users.surname, users.firstname&lt;br /&gt; ) AS rowNumber, users.id, users.firstname, users.surname&lt;br /&gt; FROM users&lt;br /&gt;) table1&lt;br /&gt;WHERE table1.rowNumber BETWEEN 150 AND 175&lt;/pre&gt;&lt;p&gt;It will only return records 150 to 175 and importantly it will order it by surname then firstname. And it’s very, very fast. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7078870535119697836-2038999424671318350?l=garysgambit.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GarysGambit?a=JQxpfmQd5T4:y0abOna6gOQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GarysGambit?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GarysGambit/~4/JQxpfmQd5T4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://garysgambit.blogspot.com/feeds/2038999424671318350/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://garysgambit.blogspot.com/2009/04/optimal-sql-to-page-through-large.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7078870535119697836/posts/default/2038999424671318350?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7078870535119697836/posts/default/2038999424671318350?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GarysGambit/~3/JQxpfmQd5T4/optimal-sql-to-page-through-large.html" title="Optimal SQL to page through large record set" /><author><name>Gary Fenton</name><uri>http://www.blogger.com/profile/02616344210671605355</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_6lC_k5CzsBQ/SeKC-Y7ceNI/AAAAAAAAAAM/HoJZzNOIAPM/S220/faceyourmanga.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://garysgambit.blogspot.com/2009/04/optimal-sql-to-page-through-large.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEMCSHk5fyp7ImA9WxVaFkk.&quot;"><id>tag:blogger.com,1999:blog-7078870535119697836.post-4383194001694106800</id><published>2009-04-13T18:07:00.001+01:00</published><updated>2009-04-13T18:07:49.727+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-13T18:07:49.727+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="AJAX" /><category scheme="http://www.blogger.com/atom/ns#" term="jQuery" /><category scheme="http://www.blogger.com/atom/ns#" term="ColdFusion" /><title>AJAXbouncer – limiting Ajax tampering and leeching</title><content type="html">&lt;p&gt;&lt;a href="http://garysgambit.blogspot.com/2009/04/ajax-tampering-and-leeching.html"&gt;Yesterday I mentioned&lt;/a&gt; a proof of concept to try to stop script kiddies and data leechers from abusing server-side scripts that are intended to serve XMLHttpRequests (XHR or AJAX). Playing with URL or form parameters can get the server to return all sorts of data, sometimes even data that the developers didn’t intend you to have access to. The problem is that servers can’t tell the difference between a normal web page request and XHR.&lt;/p&gt;  &lt;p&gt;Ray Camden blogged about how &lt;a href="http://www.insideria.com/2009/04/jqueryserver-side-tip-on-detec.html"&gt;jQuery adds an extra HTTP header&lt;/a&gt; to help the server tell the difference, but headers are very easy to spoof.&lt;/p&gt;  &lt;p&gt;My idea is for the server to issue the web page with an encrypted token. The token is the current date/time and must be sent back to the server for each and every XHR triggered by the current page. If the server doesn’t receive the token, or the token is invalid (i.e. it’s be tampered with) or the decrypted token reveals it’s older than, say, 5 minutes then the server returns a 404 error – page not found.&lt;/p&gt;  &lt;p&gt;So, anyone who tries to submit data back to the server through dishonest means will find they get a 404 after 5 minutes. If they try to alter the token they get a 404 too. This will baffle script kiddies or hackers and hopefully they will move on to mess with someone else’s website. If they persist they will realise that they can’t generate their own encrypted token but will have to refresh the main web page every 5 minutes to obtain a new token and insert that into their script. That’s the only weakness in this concept, but taking it a step further you could log the IP from the first failed XHR and block serving that IP for the next 30 minutes. Or refuse to issue a new token within the same session or to the same IP.&lt;/p&gt;  &lt;p&gt;As for genuine users you can set the web page to auto-fresh every 5 minutes. It will work best on sites where you don’t expect users to linger on the same page for too long, but of course you may prefer a longer token life (like 15 minutes).&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.coldfusionjedi.com/demos/ajaxBouncer/"&gt;&lt;strong&gt;Here’s a live demo&lt;/strong&gt;&lt;/a&gt; – many thanks to Ray Camden for hosting it. The demo’s token will expire after just 90 seconds. The POST data is exposed in a grey area at the bottom of the page so you can tamper with the parameters to see what happens. The demo uses &lt;a href="http://www.jquery.com"&gt;jQuery&lt;/a&gt; for XHR, of course.&lt;/p&gt;  &lt;p&gt;I’ve commented the code so developers using PHP, .NET, RoR, etc can easily adapt the ColdFusion code. &lt;a href="http://www.hotfusion.co.uk/ajaxBouncer.zip"&gt;Download the demo code here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;If you improve upon it please let me know.&lt;/p&gt;  &lt;p&gt;Oh, in case you’re wondering why I called it AJAXbouncer it’s because it offers a deterrent to potential trouble makers but doesn’t provide 100% safety – like bouncers standing outside pubs and clubs.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7078870535119697836-4383194001694106800?l=garysgambit.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GarysGambit?a=-P2TD6a4kQQ:Izw5_kcBYXA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GarysGambit?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GarysGambit/~4/-P2TD6a4kQQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://garysgambit.blogspot.com/feeds/4383194001694106800/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://garysgambit.blogspot.com/2009/04/ajaxbouncer-limiting-ajax-tampering-and.html#comment-form" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7078870535119697836/posts/default/4383194001694106800?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7078870535119697836/posts/default/4383194001694106800?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GarysGambit/~3/-P2TD6a4kQQ/ajaxbouncer-limiting-ajax-tampering-and.html" title="AJAXbouncer – limiting Ajax tampering and leeching" /><author><name>Gary Fenton</name><uri>http://www.blogger.com/profile/02616344210671605355</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_6lC_k5CzsBQ/SeKC-Y7ceNI/AAAAAAAAAAM/HoJZzNOIAPM/S220/faceyourmanga.jpg" /></author><thr:total>3</thr:total><feedburner:origLink>http://garysgambit.blogspot.com/2009/04/ajaxbouncer-limiting-ajax-tampering-and.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUQHSH8-fip7ImA9WxVaFUo.&quot;"><id>tag:blogger.com,1999:blog-7078870535119697836.post-2789188426828635169</id><published>2009-04-12T22:55:00.001+01:00</published><updated>2009-04-12T22:55:39.156+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-12T22:55:39.156+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ColdFusion" /><title>CFMAIL spool bug in ColdFusion 8.01</title><content type="html">&lt;p&gt;After applying a patch to fix a cfmail problem in 8.01 I noticed a new problem. When creating more than 3000 or so emails in one go about 100 ended up in the Undelivr directory. There was nothing wrong with those emails, dropping them into the spool directory by hand sent them quickly on their way.&lt;/p&gt;  &lt;p&gt;The exception.log was showing “IOException while sending message”. I reported this to an Adobe engineer in July 2008. In October the engineer found that the issue can be “fixed” by increasing the max session size in the Microsoft SMTP service. Microsoft don’t recommend increasing it too much but the more I increased it the less emails were sent to the Undelivr directory.&lt;/p&gt;  &lt;p&gt;The bug is with ColdFusion and it appears to not behave correctly if the SMTP server closes a session because it has reached the maximum size. ColdFusion &lt;em&gt;should&lt;/em&gt; react by simply opening up a new session and continue to send emails from where it last left off. But it doesn’t do that. This bug has been affecting a major application for nearly a year and Adobe haven’t been able to fix it.&lt;/p&gt;  &lt;p&gt;MS SMTP logs “552 4.3.1 Session size exceeds fixed maximum session size” which is fine, it expects the app at the other end (CF) to continue by opening a new session. I’ve now increased the session limit to a very large amount but as the application is used more the limit is reached and emails stop being sent again. CF is misbehaving and is causing operational headaches.&lt;/p&gt;  &lt;p&gt;Has anyone else had similar problems? I’m looking for others who can help add some pressure to get this bug fixed. Please do get in touch. Needless to say I’m very disappointed that CF is unable to send a large amount of (legitimate, non-marketing) emails problems.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7078870535119697836-2789188426828635169?l=garysgambit.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GarysGambit?a=1b6gjw57XD4:-YTNqqRTvks:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GarysGambit?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GarysGambit/~4/1b6gjw57XD4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://garysgambit.blogspot.com/feeds/2789188426828635169/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://garysgambit.blogspot.com/2009/04/cfmail-spool-bug-in-coldfusion-801.html#comment-form" title="6 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7078870535119697836/posts/default/2789188426828635169?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7078870535119697836/posts/default/2789188426828635169?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GarysGambit/~3/1b6gjw57XD4/cfmail-spool-bug-in-coldfusion-801.html" title="CFMAIL spool bug in ColdFusion 8.01" /><author><name>Gary Fenton</name><uri>http://www.blogger.com/profile/02616344210671605355</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_6lC_k5CzsBQ/SeKC-Y7ceNI/AAAAAAAAAAM/HoJZzNOIAPM/S220/faceyourmanga.jpg" /></author><thr:total>6</thr:total><feedburner:origLink>http://garysgambit.blogspot.com/2009/04/cfmail-spool-bug-in-coldfusion-801.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D04DQXc9fip7ImA9WxVaFUo.&quot;"><id>tag:blogger.com,1999:blog-7078870535119697836.post-2003366072515337983</id><published>2009-04-12T21:35:00.001+01:00</published><updated>2009-04-12T23:39:30.966+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-12T23:39:30.966+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="AJAX" /><category scheme="http://www.blogger.com/atom/ns#" term="jQuery" /><category scheme="http://www.blogger.com/atom/ns#" term="ColdFusion" /><title>AJAX tampering and leeching</title><content type="html">&lt;p&gt;Ray Camden &lt;a href="http://www.insideria.com/2009/04/jqueryserver-side-tip-on-detec.html"&gt;blogged about server side security when using AJAX&lt;/a&gt;. He discussed a way to detect the difference between normal HTTP requests for normal web pages and AJAX triggered HTTP requests. To the server they look virtually the same.&lt;/p&gt;  &lt;p&gt;The problem with using AJAX is that is adds a vulnerability to web applications. People can play around with URL and form parameters to see what else they can extract from your application or database. It can also be used to leech data from your database on a regular basis because, if your data is of any value to someone else, you’re providing it freely in a machine readable format, typically JSON or XML. How can you do something to stop people do that? I mentioned a possible technique when commenting to Ray’s blog and was asked to come up with some code.&lt;/p&gt;  &lt;p&gt;I brewed up a demo app and am seeing if I can get the live code hosted (it’s for ColdFusion but the technique applies to any server side language). Stay tuned…&lt;/p&gt;  &lt;p&gt;If you want to play with the code on your own CF server you can &lt;a href="http://www.hotfusion.co.uk/ajaxBouncer.zip"&gt;download it here&lt;/a&gt;. No configuration is necessary, just drop the folder into your web root. The code is highly commented so PHP, RoR and .NET coders can easily modify it.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7078870535119697836-2003366072515337983?l=garysgambit.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GarysGambit?a=UKtxngKkf1w:hRFOQsQ_K7o:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GarysGambit?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GarysGambit/~4/UKtxngKkf1w" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://garysgambit.blogspot.com/feeds/2003366072515337983/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://garysgambit.blogspot.com/2009/04/ajax-tampering-and-leeching.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7078870535119697836/posts/default/2003366072515337983?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7078870535119697836/posts/default/2003366072515337983?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GarysGambit/~3/UKtxngKkf1w/ajax-tampering-and-leeching.html" title="AJAX tampering and leeching" /><author><name>Gary Fenton</name><uri>http://www.blogger.com/profile/02616344210671605355</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_6lC_k5CzsBQ/SeKC-Y7ceNI/AAAAAAAAAAM/HoJZzNOIAPM/S220/faceyourmanga.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://garysgambit.blogspot.com/2009/04/ajax-tampering-and-leeching.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkAMRH04eyp7ImA9WxVaFUs.&quot;"><id>tag:blogger.com,1999:blog-7078870535119697836.post-8236441874922401548</id><published>2009-04-12T20:33:00.001+01:00</published><updated>2009-04-12T20:33:05.333+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-12T20:33:05.333+01:00</app:edited><title>First post is always the toughest</title><content type="html">&lt;p&gt;Finally I have a permanent blog after being on the Internet since 1991 and making my first web page in 1994. Finding the best blogging site and tools was a bit of an adventure since there are so many options and not everything does what you want or expect it to.&lt;/p&gt;  &lt;p&gt;I’ve settled for Windows Live Writer for composing (I prefer a WYSIWYG desktop app) and Blogger.com for hosting. All I need now is a reliable way to post code snippets in a nicely formatted way – it needs to support CFML as well as JavaScript and HTML. Any ideas? &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7078870535119697836-8236441874922401548?l=garysgambit.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GarysGambit?a=WZJk2KuK0m8:QTLrujnRldc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GarysGambit?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/GarysGambit/~4/WZJk2KuK0m8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://garysgambit.blogspot.com/feeds/8236441874922401548/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://garysgambit.blogspot.com/2009/04/first-post-is-always-toughest.html#comment-form" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7078870535119697836/posts/default/8236441874922401548?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7078870535119697836/posts/default/8236441874922401548?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/GarysGambit/~3/WZJk2KuK0m8/first-post-is-always-toughest.html" title="First post is always the toughest" /><author><name>Gary Fenton</name><uri>http://www.blogger.com/profile/02616344210671605355</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_6lC_k5CzsBQ/SeKC-Y7ceNI/AAAAAAAAAAM/HoJZzNOIAPM/S220/faceyourmanga.jpg" /></author><thr:total>3</thr:total><feedburner:origLink>http://garysgambit.blogspot.com/2009/04/first-post-is-always-toughest.html</feedburner:origLink></entry></feed>

