<?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:feedburner="http://rssnamespace.org/feedburner/ext/1.0">
    <title>The Byte Stops Here</title>
    <link rel="alternate" type="text/html" href="http://www.bytestopshere.com/" />
    
	<id>tag:http:,2009:/</id>
    <link rel="service.post" type="application/atom+xml" href="http://www.bytestopshere.com/api" title="The Byte Stops Here" />
    <subtitle>The Professional Blog of Sami Hoda &lt;br&gt; Life on the Bleeding Edge</subtitle>
    <generator uri="http://www.mangoblog.org/">Mango 1.4</generator>
 
<link rel="self" href="http://feeds.feedburner.com/TheByteStopsHere/atom" type="application/atom+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><entry>
    <title>Major Flaw in CF9 - May Break Code! (Part 2)</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheByteStopsHere/atom/~3/AQZp3t3QJ5M/major-flaw-in-cf9-may-break-code-part-2" />
    <id>urn:uuid:1D7021DF-0403-E24B-4F5D274E621EAD47</id>
    
    <published>2009-11-02T10:11:15Z</published>
    <updated>2009-11-02T10:11:00Z</updated>
    
    <summary />
    <author>
        <name>Sami Hoda</name>
   </author>
    
        <category term="Server" /> 
        <category term="Adobe" /> 
        <category term="ColdFusion" /> 
    <content type="html" xml:lang="en" xml:base="http://www.bytestopshere.com/">
        &lt;p&gt;I have submitted comments from the &lt;a href="/post.cfm/major-flaw-in-cf9-may-break-code" target="_blank"&gt;previous post&lt;/a&gt; detailing the issue as Bug # &lt;a href="http://cfbugs.adobe.com/cfbugreport/flexbugui/cfbugtracker/main.html#bugId=80552" target="_blank"&gt;80552&lt;/a&gt; inside Adobe's Bug Tracker. To get this fixed, &lt;a href="http://cfbugs.adobe.com/cfbugreport/flexbugui/cfbugtracker/main.html#bugId=80552" target="_blank"&gt;please vote&lt;/a&gt;!&lt;/p&gt;
    &lt;img src="http://feeds.feedburner.com/~r/TheByteStopsHere/atom/~4/AQZp3t3QJ5M" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://www.bytestopshere.com/post.cfm/major-flaw-in-cf9-may-break-code-part-2</feedburner:origLink></entry>

<entry>
    <title>Major Flaw in CF9 - May Break Code!</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheByteStopsHere/atom/~3/Bmz-X_0gCm4/major-flaw-in-cf9-may-break-code" />
    <id>urn:uuid:83BF68C6-CE26-E30C-CA4164268AA8D3F1</id>
    
    <published>2009-10-30T11:10:29Z</published>
    <updated>2009-10-30T04:10:00Z</updated>
    
    <summary />
    <author>
        <name>Sami Hoda</name>
   </author>
    
        <category term="Adobe" /> 
        <category term="News" /> 
        <category term="ColdFusion" /> 
    <content type="html" xml:lang="en" xml:base="http://www.bytestopshere.com/">
        &lt;p&gt;As part of our upgrade to CF9, we started doing regression testing on our local boxes. My co-worker &lt;a href="http://www.lamoree.com/machblog/index.cfm" target="_blank"&gt;Joseph Lamoree&lt;/a&gt; found and &lt;a href="http://jlamoree.posterous.com/coldfusion-9-and-the-local-scope-0" target="_blank"&gt;blogged&lt;/a&gt; about a flaw he found in CF9 that brought our app to a halt. Serious, no joke.&lt;/p&gt;
&lt;p&gt;Here is the issue in some detail. If you want to take a look at a MXUnit Test Case, then head over to Joseph's blog on Posterous for more details as well.&lt;/p&gt;
&lt;p&gt;I have two files, local.cfm and local.cfc.&lt;/p&gt;

&lt;p&gt;Local.cfm has the following:&lt;/p&gt;

&lt;p&gt;&lt;script type="syntaxhighlighter" class="brush: cf"&gt;&lt;![CDATA[

&lt;cfset test = createObject("component","local")&gt;
&lt;cfset result = test.doSomething()&gt;
&lt;cfdump var = "#result#"&gt;

]]&gt;&lt;/script&gt;&lt;/p&gt;

&lt;p&gt;Local.cfc has the following:&lt;/p&gt;


&lt;p&gt;&lt;script type="syntaxhighlighter" class="brush: cf"&gt;&lt;![CDATA[
&lt;cfcomponent&gt;

        &lt;cffunction access="public" name="doSomething" returntype="any"
output="false" &gt;
                &lt;cfset var local = getProperties() &gt;

                &lt;cfset local.strVersion = SERVER.ColdFusion.ProductVersion &gt;
                &lt;cfset local.strLevel = SERVER.ColdFusion.ProductLevel &gt;

                &lt;cfreturn local &gt;
        &lt;/cffunction&gt;

        &lt;cffunction name="getProperties" returntype="struct" access="private"
output="false"&gt;
                &lt;cfset var local = structNew() &gt;
                &lt;cfset local.firstName = "John" &gt;
                &lt;cfset local.lastName = "Doe" &gt;
                &lt;cfreturn local &gt;
        &lt;/cffunction&gt;

&lt;/cfcomponent&gt;
]]&gt;&lt;/script&gt;&lt;/p&gt;

&lt;p&gt;When running this on CF8, I get the following output:&lt;/p&gt;

&lt;p&gt;&lt;script type="syntaxhighlighter" class="brush: plain"&gt;&lt;![CDATA[
struct
FIRSTNAME       John
LASTNAME        Doe
STRLEVEL        Enterprise
STRVERSION      8,0,1,195765
]]&gt;&lt;/script&gt;&lt;/p&gt;

&lt;p&gt;When running this on CF9, I get the following output:&lt;/p&gt;

&lt;p&gt;&lt;script type="syntaxhighlighter" class="brush: plain"&gt;&lt;![CDATA[
struct
ARGUMENTS
struct [empty]
STRLEVEL        Developer
STRVERSION      9,0,0,251028
THIS
[cfc1] component experiment.local
METHODS
]]&gt;&lt;/script&gt;&lt;/p&gt;

&lt;p&gt;
First off, CF9 is &lt;b&gt;killing&lt;/b&gt; firstName and lastName. It seems when
setting local to a Struct return from a function to start off, those
values are quickly killed.&lt;/p&gt;

&lt;p&gt;
Why is this a big issue? Well, in frameworks like Mach II, you can
start with:&lt;/p&gt;

&lt;p&gt;&lt;script type="syntaxhighlighter" class="brush: cf"&gt;&lt;![CDATA[
&lt;cfset var local = arguments.event.getArgs() &gt;
]]&gt;&lt;/script&gt;&lt;/p&gt;

&lt;p&gt;
What we see is that we have to do a structAppend, appending local to
the values we want from the function...  &lt;/p&gt;

&lt;p&gt;Seems to me that any cfset local = is being ignored more or less. That is why:&lt;/p&gt;

&lt;p&gt;&lt;script type="syntaxhighlighter" class="brush: cf"&gt;&lt;![CDATA[
&lt;cfset local.x = 'foo'  &gt;
&lt;cfset local = StructNew() &gt;
]]&gt;&lt;/script&gt;&lt;/p&gt;

&lt;p&gt;
If you dump this, it behaves like the 2nd line never happened. It
shows the value for local.x. But this way, any function call to set
values to local also get ignored. I think if the programming ignored
the structNew(), but "appended" values from other functions instead of
ignoring, this would everyone happy.&lt;/p&gt;
    &lt;img src="http://feeds.feedburner.com/~r/TheByteStopsHere/atom/~4/Bmz-X_0gCm4" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://www.bytestopshere.com/post.cfm/major-flaw-in-cf9-may-break-code</feedburner:origLink></entry>

<entry>
    <title>Must Read: Teaching CS @ Universities - Great Article</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheByteStopsHere/atom/~3/pEWPHA3-mxc/must-read-teaching-cs-universities-great-article" />
    <id>urn:uuid:EBBBD90D-C527-3F91-CF92609134B58CD9</id>
    
    <published>2009-10-27T12:10:58Z</published>
    <updated>2009-10-27T12:10:00Z</updated>
    
    <summary />
    <author>
        <name>Sami Hoda</name>
   </author>
    
        <category term="Project Management" /> 
        <category term="Software Engineering" /> 
    <content type="html" xml:lang="en" xml:base="http://www.bytestopshere.com/">
        &lt;p&gt;Joel Spolsky writes an excellent article/blog entry called "Capstone projects and time management". Its about a topic I'm very passionate about, and that is the teaching of Computer Science or Computer Information Systems at universities.Great read.&lt;/p&gt;
&lt;p&gt;Read more @ &lt;a href="http://www.joelonsoftware.com/items/2009/10/26.html" target="_blank"&gt;http://www.joelonsoftware.com/items/2009/10/26.html&lt;/a&gt;.&lt;/p&gt;
    &lt;img src="http://feeds.feedburner.com/~r/TheByteStopsHere/atom/~4/pEWPHA3-mxc" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://www.bytestopshere.com/post.cfm/must-read-teaching-cs-universities-great-article</feedburner:origLink></entry>

<entry>
    <title>UCLA Study: The Internet Is Altering Our Brains</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheByteStopsHere/atom/~3/Os1y2wZkRVo/ucla-study-the-internet-is-altering-our-brains" />
    <id>urn:uuid:8200E006-A756-57B4-FE5E0CBFF5695247</id>
    
    <published>2009-10-20T12:10:16Z</published>
    <updated>2009-10-20T12:10:00Z</updated>
    
    <summary />
    <author>
        <name>Sami Hoda</name>
   </author>
    
        <category term="News" /> 
    <content type="html" xml:lang="en" xml:base="http://www.bytestopshere.com/">
        &lt;p&gt;Fascinating article. Read more @ &lt;a href="http://www.foxnews.com/printer_friendly_story/0,3566,568576,00.html" target="_blank"&gt;http://www.foxnews.com/printer_friendly_story/0,3566,568576,00.html&lt;/a&gt;. &lt;/p&gt;
    &lt;img src="http://feeds.feedburner.com/~r/TheByteStopsHere/atom/~4/Os1y2wZkRVo" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://www.bytestopshere.com/post.cfm/ucla-study-the-internet-is-altering-our-brains</feedburner:origLink></entry>

<entry>
    <title>Hilarious Video - A Day at the Office</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheByteStopsHere/atom/~3/FmkRZwjC95o/hilarious-video-a-day-at-the-office" />
    <id>urn:uuid:BDCEFED3-EFD7-5E55-F36DEB5D75145D22</id>
    
    <published>2009-10-16T04:10:56Z</published>
    <updated>2009-10-16T04:10:00Z</updated>
    
    <summary />
    <author>
        <name>Sami Hoda</name>
   </author>
    
    <content type="html" xml:lang="en" xml:base="http://www.bytestopshere.com/">
        &lt;p&gt;
					&lt;object width="425" height="355"&gt;
						&lt;param name="movie" value="http://www.youtube.com/v/XWhUeAy35qc&amp;rel=1"&gt;&lt;/param&gt;
						&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;
						&lt;embed src="http://www.youtube.com/v/XWhUeAy35qc&amp;rel=1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;
					&lt;/object&gt;
					&lt;/p&gt;
    &lt;img src="http://feeds.feedburner.com/~r/TheByteStopsHere/atom/~4/FmkRZwjC95o" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://www.bytestopshere.com/post.cfm/hilarious-video-a-day-at-the-office</feedburner:origLink></entry>

<entry>
    <title>Blocking Traffic from China - Thoughts Needed</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheByteStopsHere/atom/~3/EZr37meHl5o/blocking-traffic-from-china-thoughts-needed" />
    <id>urn:uuid:E3C0D7E2-976F-941C-B3E8AC998678D694</id>
    
    <published>2009-10-12T11:10:13Z</published>
    <updated>2009-10-12T11:10:00Z</updated>
    
    <summary />
    <author>
        <name>Sami Hoda</name>
   </author>
    
        <category term="Server" /> 
        <category term="Information Technology" /> 
    <content type="html" xml:lang="en" xml:base="http://www.bytestopshere.com/">
        &lt;p&gt;I've been reading my logs more thoroughly for the past few data and I see a lot of bad traffic. Couple that with CFFormProtect, which tends to block SPAM posts dozens of times per day. Most of the traffic is coming from China unfortunately. &lt;/p&gt;
&lt;p&gt;Now looking at my Google Analytics, I do think there is some legitimate traffic from China. For my work, on the other hand, we blocked ALL traffic from China, since we don't do business there and see no need for traffic from there. &lt;/p&gt;
&lt;p&gt;However, as a blogger, what do I do? What can I do to conserve server resources without kicking out what may be legitimate readers? What have you done? Any thoughts or advice would be appreciated. &lt;/p&gt;
    &lt;img src="http://feeds.feedburner.com/~r/TheByteStopsHere/atom/~4/EZr37meHl5o" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://www.bytestopshere.com/post.cfm/blocking-traffic-from-china-thoughts-needed</feedburner:origLink></entry>

<entry>
    <title>CF9 Doesn't Like Mango Blog</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheByteStopsHere/atom/~3/ORnFhf7uCDI/cf9-doesn-t-like-mango-blog" />
    <id>urn:uuid:5A62DD60-A55D-AB0A-8C1E77477219A144</id>
    
    <published>2009-10-09T07:10:07Z</published>
    <updated>2009-10-30T04:10:00Z</updated>
    
    <summary />
    <author>
        <name>Sami Hoda</name>
   </author>
    
        <category term="Tools of the Trade" /> 
        <category term="ColdFusion" /> 
    <content type="html" xml:lang="en" xml:base="http://www.bytestopshere.com/">
        &lt;p&gt;Well, I upgraded my server to CF9, and there were both some immediate and subtle hiccups working with the latest build of Mango Blog. I've mentioned some of these in the forums, but here they are.&lt;/p&gt;
&lt;p&gt;First, the site would not run. I got: "Error: Object of type class java.lang.String cannot be used as an array". I narrowed down the issue to: "cfset to = arraylen(linkCategories)"&lt;/p&gt;
&lt;p&gt;The issue was inside \tags\mangoextras\LinkCategories.cfm on Line 14. I basically put the code inside a catch/try and on error set "to" to 0. Not sure if its accurate, but it work, the site load.&lt;/p&gt;
&lt;p&gt;This sparked my curiousity. I cleared the error and ran through some basic stuff. The cfformprotect plugin threw an error. This one I'm not 100% certain is CF9 related, or just an error related to the code there. &lt;/p&gt;
&lt;p&gt;This one threw: "Element RAWDATA.COMMENT_NAME is undefined in DATA. "&lt;/p&gt;
&lt;p&gt;Going further, I ran CF9's Code Analyzer, and found a whole bunch of stuff. &lt;/p&gt;
&lt;p&gt;&lt;script type="syntaxhighlighter" class="brush: plain"&gt;&lt;![CDATA[
ARRAYFIND        Info       C:\inetpub\wwwroot\bytestopshere.com\components\plugins\user\captcha\captchaService.cfc
CFDUMP     Info     C:\inetpub\wwwroot\bytestopshere.com\components\utilities\Logger.cfc
CFDUMP (1)     Info     C:\inetpub\wwwroot\bytestopshere.com\components\plugins\user\BurntMango\settingsForm.cfm
CFDUMP (2)     Info     C:\inetpub\wwwroot\bytestopshere.com\components\plugins\user\FeedPing\settingsForm.cfm
CFDUMP (3)     Info     C:\inetpub\wwwroot\bytestopshere.com\components\plugins\user\cfformprotect\admin\akismetSubmit.cfm
CFDUMP (4)     Info     C:\inetpub\wwwroot\bytestopshere.com\components\plugins\user\cfformprotect\Handler.cfc
CFIMAGE     Info     C:\inetpub\wwwroot\bytestopshere.com\components\plugins\user\cf8captcha\Handler.cfc
CFINPUT     Info     C:\inetpub\wwwroot\bytestopshere.com\components\plugins\user\BlogSubscriber\admin\signupForm.cfm
LOCAL SCOPE INFO     Info     C:\inetpub\wwwroot\bytestopshere.com\components\plugins\system\RevisionManager\Handler.cfc
LOCAL SCOPE INFO (1)     Info     C:\inetpub\wwwroot\bytestopshere.com\components\Updater.cfc
LOCAL SCOPE INFO (2)     Info     C:\inetpub\wwwroot\bytestopshere.com\components\plugins\user\cf8captcha\Handler.cfc
LOCAL SCOPE INFO (3)     Info     C:\inetpub\wwwroot\bytestopshere.com\components\plugins\user\cfformprotect\Handler.cfc
LOCAL SCOPE INFO (4)     Info     C:\inetpub\wwwroot\bytestopshere.com\components\AdminUtil.cfc
LOCATION     Error     C:\inetpub\wwwroot\bytestopshere.com\components\plugins\user\captcha\captchaService.cfc
]]&gt;&lt;/script&gt;&lt;/p&gt;
&lt;br /&gt;The first and the last one are especially interesting. ArrayFind is a reserved name and "location" as well.&lt;/p&gt;
&lt;p&gt;I'm sure there is more!&lt;/p&gt;
    &lt;img src="http://feeds.feedburner.com/~r/TheByteStopsHere/atom/~4/ORnFhf7uCDI" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://www.bytestopshere.com/post.cfm/cf9-doesn-t-like-mango-blog</feedburner:origLink></entry>

<entry>
    <title>ColdFusion 9 - 50% OFF</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheByteStopsHere/atom/~3/suxMflqawWc/coldfusion-9-50-off" />
    <id>urn:uuid:259C2C37-FF58-F3C6-E94A2C4FA7C31534</id>
    
    <published>2009-10-05T11:10:48Z</published>
    <updated>2009-10-05T11:10:00Z</updated>
    
    <summary />
    <author>
        <name>Sami Hoda</name>
   </author>
    
        <category term="Adobe" /> 
        <category term="ColdFusion" /> 
    <content type="html" xml:lang="en" xml:base="http://www.bytestopshere.com/">
        &lt;p&gt;Ok, now that I've got your attention, this is how I calculate the savings.&lt;/p&gt;
&lt;p&gt;We have dev (besides each developers local environment), staging, and UAT environments for code before they hit production.&lt;/p&gt;
&lt;p&gt;Before, we would have to buy CF Entrprise for Dev, Stage, UAT, and our Prod Boxes. But guess what, with ColdFusion 9 has some great EULA changes as &lt;a href="http://www.terrenceryan.com/blog/post.cfm/coldfusion-9-eula-changes" target="_blank"&gt;highlighted by Terry Ryan&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;So besides the fact, that if I had a duplicate of my prod environment for disaster recovery purposes, I could use my prod licenses on those boxes, I can now share my prod licenses with "development, testing, staging" servers. &lt;/p&gt;
&lt;p&gt;It 99% clear, and &lt;a href="http://www.terrenceryan.com/blog/post.cfm/coldfusion-9-testing-staging-and-development-changes-to-eula" target="_blank"&gt;another post by Terry&lt;/a&gt; tries to clarify. From what I can tell, I no longer have to buy extra licenses for servers that don't get much hits. &lt;/p&gt;
&lt;p&gt;This is one of those things I brought up during with Adam Lehman a while back, and glad to see it implemented with CF 9. Woo-hoo!&lt;/p&gt;
    &lt;img src="http://feeds.feedburner.com/~r/TheByteStopsHere/atom/~4/suxMflqawWc" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://www.bytestopshere.com/post.cfm/coldfusion-9-50-off</feedburner:origLink></entry>

<entry>
    <title>ColdFusion 8.01 Cumulutive Hot Fix 3 Update (and Pain!)</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheByteStopsHere/atom/~3/3FaP-nEQ7sI/coldfusion-8-01-cumulutive-hot-fix-3-update-and-pain" />
    <id>urn:uuid:0CCD51AD-FF58-F3C6-E903B59354FCD2B5</id>
    
    <published>2009-09-30T03:09:26Z</published>
    <updated>2009-09-30T04:09:00Z</updated>
    
    <summary />
    <author>
        <name>Sami Hoda</name>
   </author>
    
        <category term="Adobe" /> 
        <category term="ColdFusion" /> 
    <content type="html" xml:lang="en" xml:base="http://www.bytestopshere.com/">
        &lt;p&gt;I didn't see this advertised anywhere, but it seems the CHF3 was re-released on 9/16/09 with some fixes.&lt;/p&gt;
&lt;p&gt;The changes can be found @ &lt;a href="http://kb2.adobe.com/cps/511/cpsid_51180.html" target="_blank"&gt;http://kb2.adobe.com/cps/511/cpsid_51180.html&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Either way, with the pre-9/16 version or the post-9/16 I am seeing errors occasionally on our servers. &lt;/p&gt;
&lt;p&gt;The errors say: "coldfusion.runtime.J2eeSessionScopeStub cannot be cast to coldfusion.runtime.J2eeSessionScopeStub" and they match the one found by Terry Palmer @ &lt;a href="http://cfteeps.blogspot.com/2009/09/hot-under-hotfix.html" target="_blank"&gt;http://cfteeps.blogspot.com/2009/09/hot-under-hotfix.html&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Does anyone else have any experience with this?&lt;/p&gt;
    &lt;img src="http://feeds.feedburner.com/~r/TheByteStopsHere/atom/~4/3FaP-nEQ7sI" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://www.bytestopshere.com/post.cfm/coldfusion-8-01-cumulutive-hot-fix-3-update-and-pain</feedburner:origLink></entry>

<entry>
    <title>MS-SQL Tip: Creating A Comma Delimited List From a Column </title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheByteStopsHere/atom/~3/gvf9xWa6bEg/ms-sql-tip-creating-a-comma-delimited-list-from-a-column" />
    <id>urn:uuid:0CBE42E1-FF58-F3C6-E900CDBCF2C67E42</id>
    
    <published>2009-09-30T03:09:07Z</published>
    <updated>2009-09-30T03:09:00Z</updated>
    
    <summary />
    <author>
        <name>Sami Hoda</name>
   </author>
    
        <category term="Database" /> 
        <category term="Tools of the Trade" /> 
    <content type="html" xml:lang="en" xml:base="http://www.bytestopshere.com/">
        &lt;p&gt;A lot of times we take functions like valueList for granted. When it comes to SQL Server, if we wanted to do something similar, we have to jump through a lot of hoops. &lt;/p&gt;
&lt;p&gt;Fortunately, I stumbled upon an article covering different techniques on MS SQL 2008, 2005, and 2000.&lt;/p&gt;
&lt;p&gt;Take a look, you won't be disappointed.&lt;/p&gt;
&lt;p&gt;Read more @ &lt;a href="http://code.msdn.microsoft.com/SQLExamples/Wiki/View.aspx?title=createacommadelimitedlist" target="_blank"&gt;http://code.msdn.microsoft.com/SQLExamples/Wiki/View.aspx?title=createacommadelimitedlist&lt;/a&gt;.&lt;/p&gt;
    &lt;img src="http://feeds.feedburner.com/~r/TheByteStopsHere/atom/~4/gvf9xWa6bEg" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://www.bytestopshere.com/post.cfm/ms-sql-tip-creating-a-comma-delimited-list-from-a-column</feedburner:origLink></entry>

<entry>
    <title>Defragment Firefox!</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheByteStopsHere/atom/~3/Diu1jcYfL_c/defragment-firefox" />
    <id>urn:uuid:96F3E0D9-FF58-F3C6-E998E6469096031B</id>
    
    <published>2009-09-07T06:09:31Z</published>
    <updated>2009-09-07T07:09:00Z</updated>
    
    <summary />
    <author>
        <name>Sami Hoda</name>
   </author>
    
        <category term="Tools of the Trade" /> 
    <content type="html" xml:lang="en" xml:base="http://www.bytestopshere.com/">
        &lt;p&gt;Did you know you can defragment firefox... what you would really be doing is cleaning up its internal database, but it works!&lt;/p&gt;
&lt;p&gt;More details here:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.mydigitallife.info/2009/09/06/optimize-firefox-performance-via-defragmentation-add-on-applications/" target="_blank"&gt;http://www.mydigitallife.info/2009/09/06/optimize-firefox-performance-via-defragmentation-add-on-applications/&lt;/a&gt;&lt;/p&gt;
    &lt;img src="http://feeds.feedburner.com/~r/TheByteStopsHere/atom/~4/Diu1jcYfL_c" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://www.bytestopshere.com/post.cfm/defragment-firefox</feedburner:origLink></entry>

<entry>
    <title>Amazing SoCal Fire Photos</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheByteStopsHere/atom/~3/399l4LPmBjA/amazing-socal-fire-photos" />
    <id>urn:uuid:811F6319-FF58-F3C6-E9102E1FB32F6995</id>
    
    <published>2009-09-03T01:09:07Z</published>
    <updated>2009-09-03T01:09:00Z</updated>
    
    <summary />
    <author>
        <name>Sami Hoda</name>
   </author>
    
        <category term="Default" /> 
    <content type="html" xml:lang="en" xml:base="http://www.bytestopshere.com/">
        &lt;p&gt;&lt;img style="margin-top: 10px; margin-bottom: 10px;" src="http://www.bytestopshere.com/assets/content//fire/slide_2578_36344_large.jpg" alt="" width="550" height="324" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img style="margin-top: 10px; margin-bottom: 10px;" src="http://www.bytestopshere.com/assets/content//fire/slide_2578_36347_large.jpg" alt="" width="550" height="364" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img style="margin-top: 10px; margin-bottom: 10px;" src="http://www.bytestopshere.com/assets/content//fire/slide_2578_36348_large.jpg" alt="" width="550" height="277" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img style="margin-top: 10px; margin-bottom: 10px;" src="http://www.bytestopshere.com/assets/content//fire/slide_2578_36349_large.jpg" alt="" width="550" height="385" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img style="margin-top: 10px; margin-bottom: 10px;" src="http://www.bytestopshere.com/assets/content//fire/slide_2578_36353_large.jpg" alt="" width="550" height="412" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img style="margin-top: 10px; margin-bottom: 10px;" src="http://www.bytestopshere.com/assets/content//fire/slide_2578_36355_large.jpg" alt="" width="550" height="364" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img style="margin-top: 10px; margin-bottom: 10px;" src="http://www.bytestopshere.com/assets/content//fire/slide_2578_36361_large.jpg" alt="" width="550" height="365" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img style="margin-top: 10px; margin-bottom: 10px;" src="http://www.bytestopshere.com/assets/content//fire/slide_2578_36363_large.jpg" alt="" width="550" height="360" /&gt;&lt;/p&gt;
    &lt;img src="http://feeds.feedburner.com/~r/TheByteStopsHere/atom/~4/399l4LPmBjA" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://www.bytestopshere.com/post.cfm/amazing-socal-fire-photos</feedburner:origLink></entry>

<entry>
    <title>Half GB ColdFusion App Open Sourced By Defense Info Agency</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheByteStopsHere/atom/~3/MohrPpw5wxg/half-gb-coldfusion-app-open-sourced-by-defense-info-agency" />
    <id>urn:uuid:7C995FBE-FF58-F3C6-E9E08E357A00C08D</id>
    
    <published>2009-09-02T04:09:52Z</published>
    <updated>2009-09-02T04:09:00Z</updated>
    
    <summary />
    <author>
        <name>Sami Hoda</name>
   </author>
    
        <category term="Adobe" /> 
        <category term="ColdFusion" /> 
    <content type="html" xml:lang="en" xml:base="http://www.bytestopshere.com/">
        &lt;p&gt;I'd like to see this! Written in CF8, with tons of unique features!&lt;/p&gt;
&lt;p&gt;Read more:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.informationweek.com/news/government/enterprise-apps/showArticle.jhtml?articleID=219401044" target="_blank"&gt;Defense Info Agency Open-Sources Its Web Apps&lt;br /&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://carlodaffara.conecta.it/?p=316" target="_blank"&gt;DoD OSCMIS: a great beginning of a new OSS project&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Has anyone seen this app? Looks like you have to jump through some hoops to get a copy. &lt;/p&gt;
    &lt;img src="http://feeds.feedburner.com/~r/TheByteStopsHere/atom/~4/MohrPpw5wxg" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://www.bytestopshere.com/post.cfm/half-gb-coldfusion-app-open-sourced-by-defense-info-agency</feedburner:origLink></entry>

<entry>
    <title>Hiring Woe #1 - Building Apps from Scratch vs. Maintenance</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheByteStopsHere/atom/~3/HtQDcgH_az0/hiring-woe-1-building-apps-from-scratch-vs-maintenance" />
    <id>urn:uuid:7C8CCDC9-FF58-F3C6-E942936ABA7BC71D</id>
    
    <published>2009-09-02T03:09:32Z</published>
    <updated>2009-09-02T03:09:00Z</updated>
    
    <summary />
    <author>
        <name>Sami Hoda</name>
   </author>
    
        <category term="Human Resources" /> 
    <content type="html" xml:lang="en" xml:base="http://www.bytestopshere.com/">
        &lt;p&gt;Ok, as promised, I'm covering some hiring issues I've had over the past couple years.&lt;/p&gt;
&lt;p&gt;One of the first things that comes to mind, when looking at a developer's experience, is whether they have had any experience building things from scratch, or is most of their experience in just maintaining existing applications.&lt;/p&gt;
&lt;p&gt;Now, don't get me wrong, the issue isn't actually that simple. If you read Andy Singleton's &lt;a href="http://blog.assembla.com/assemblablog/tabid/12618/bid/2764/The-number-one-developer-qualification-Can-build-from-scratch.aspx" target="_blank"&gt;blog post&lt;/a&gt; (of Assembla fame), he talks about how the number one developer qualification, in his opinion, is being able to build from scratch. &lt;/p&gt;
&lt;p&gt;On the other hand, maintenance has its own benefits. You get to see the application grow over time, understanding and work on its weaknesses, respond to client feedback and re-work/refactor to improve etc. &lt;/p&gt;
&lt;p&gt;The reason I bring this up, is that during the interview process, I ask about the applications they have worked on. A lot of times you will find contractors who jump from one new app to another, and with no sense of what happened to that, how it progress, whether what they built created value, or even actually solved the business problem it was built for. This is an extreme, and just building from scratch with no long term perspective is a negative in my book, no matter how good an "architect" you were.&lt;/p&gt;
&lt;p&gt;To other group I often find, is people who have just maintained apps. They might also be contractors who got brought on to maintain an app, or people who originally built and stayed long into the maintenance phase. The problem I find here is that often times, contractors especially, will say: "Well, we just maintained it. We had to adopt to the coding standards (or lack thereof." Basically, there was little innovation. They were not allowed to rock the boat, re-factor heavily, or even understand why the app was built in the first place. I often ask this group, what their experience is with frameworks, and the few that know what I'm talking about, mention that the client saw the benefits of transitioning to one, but they never did anything. The large majority who maintained apps come back and say, "framework??" &lt;/p&gt;
&lt;p&gt;One word of advice: If you're maintaining an app, and you have no experience with using a framework, at least spend some time on the side working on them, and be familiar with them. If you are just maintaining apps, and stuck in your little world keeping the status quo, then I can't work with you. That ain't life on the bleeding edge, right. ;)&lt;/p&gt;
&lt;p&gt;So whatever your case, understand where you are. Trying to build apps from scratch, but also stick with them for some years before you move on. These are the people who are often the most balanced: they can speak to client needs over time, the evolution of the app, and even the dire straights of being stuck in maintenance mode. If you are in one extreme case or the other, look for an opportunity to try the other extreme and come towards the middle.&lt;/p&gt;
    &lt;img src="http://feeds.feedburner.com/~r/TheByteStopsHere/atom/~4/HtQDcgH_az0" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://www.bytestopshere.com/post.cfm/hiring-woe-1-building-apps-from-scratch-vs-maintenance</feedburner:origLink></entry>

<entry>
    <title>Verity Indexing for SQL Server - Some Tips</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheByteStopsHere/atom/~3/SUt6faMfNgM/verity-indexing-for-sql-server-some-tips" />
    <id>urn:uuid:7C6C9FA1-FF58-F3C6-E98E77957F015230</id>
    
    <published>2009-09-02T03:09:07Z</published>
    <updated>2009-09-02T03:09:00Z</updated>
    
    <summary />
    <author>
        <name>Sami Hoda</name>
   </author>
    
        <category term="Server" /> 
        <category term="ColdFusion" /> 
    <content type="html" xml:lang="en" xml:base="http://www.bytestopshere.com/">
        &lt;p&gt;We've been using Verity for years. Needless to say, there is a reason I don't have hair on my head. :)&lt;/p&gt;
&lt;p&gt;I can't wait to move to Solr. But in the mean time, we made several enhancement to our indexing that I wanted to share.&lt;/p&gt;
&lt;p&gt;First, we have close to 30,000 records (many with large text fields) that get indexed almost hourly. These records are constantly being updated.&lt;/p&gt;
&lt;p&gt;Every several days, we would have corruption or locking issues. We decided that we would do a full purge and re-index nightly to fix this issue.&lt;/p&gt;
&lt;p&gt;In doing 30,000 records, Verity would freak out. I mean, before we could simply load all into memory via CFQuery, and pass it to Verity. That soon became unwieldy, not because of memory issues (another topic), but because Verity would throw up.&lt;/p&gt;
&lt;p&gt;So the first thing we did was look up an industrial strength SQL script to page through the records. Here is the process we use:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Purge Index&lt;/li&gt;
&lt;li&gt;Use Special SQL Script to grab  500 records&lt;/li&gt;
&lt;li&gt;Update Index&lt;/li&gt;
&lt;li&gt;Grab next 500&lt;/li&gt;
&lt;li&gt;Update Index&lt;/li&gt;
&lt;li&gt;Repeat steps 4 and 5 till we get to our record count&lt;/li&gt;
&lt;li&gt;Optimize&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This works like a charm. Well, until last night when we started getting errors from the database. We do lots of SQL Server replication (another topic!), and it seems the tables we were indexing were throwing dead lock errors. Basically SQL Server 2005 found two processes asking for a lock on similar data and killed our index process. First off, we use the (NOLOCK) flag next to each table in our query. That should have prevented the issue. I found so many search results of people complaining why SQL Server is just plain not smart enough to handle simple locks issues like this. Anyways, I digress. &lt;/p&gt;
&lt;p&gt;To resolve the issue, I added two additional lines to the SQL query pulling the data:&lt;/p&gt;
&lt;p&gt;SET DEADLOCK_PRIORITY HIGH&lt;br /&gt;SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED&lt;/p&gt;
&lt;p&gt;Hope this helps folks having similar issues.&lt;/p&gt;
    &lt;img src="http://feeds.feedburner.com/~r/TheByteStopsHere/atom/~4/SUt6faMfNgM" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://www.bytestopshere.com/post.cfm/verity-indexing-for-sql-server-some-tips</feedburner:origLink></entry>

</feed>
