<?xml version="1.0" encoding="utf-8"?>
			
			<rss version="2.0">
			<channel>
			<title>&lt;CFWTF&gt;</title>
			<link>http://www.frenches.com/blog/index.cfm</link>
			<description>The life and times of a simple and occasionally exasperated ColdFusion programmer</description>
			<language>en-us</language>
			<pubDate>Sat, 19 May 2012 21:32:21-0700</pubDate>
			<lastBuildDate>Mon, 30 Jul 2007 03:48:00-0700</lastBuildDate>
			<generator>BlogCFC</generator>
			<docs>http://blogs.law.harvard.edu/tech/rss</docs>
			<managingEditor>blog@frenches.com</managingEditor>
			<webMaster>blog@frenches.com</webMaster>
			
			
			
			
			
			<item>
				<title>About the CF 8 Price Increase</title>
				<link>http://www.frenches.com/blog/index.cfm/2007/7/30/About-the-CF-8-Price-Increase</link>
				<description>
				
				To Adobe and their defenders in regards to the ColdFusion price hike.  Despite your assumptions to the contrary, those of us complaining about the price increase are not whiny brats.  We do have a legitimate greivance to bring.

Let me try to explain the perspective I&apos;m coming from.  I work for a small development house.  We build websites - NOT webservices or specific apps that fit into a larger corporate IT infrastructure - a single website for a small-to-medium-sized company, usually with several very small apps conglomerated together.  An Ecommerce site, for example, is our bread and butter.  A typical project for us is around $35-50k, and is completed within a month or two - planning to deployment.  Obviously, we do this several times a year, usually to different customers each time.  So to win the contract, we have to compete not only on quality, but on price.  These sites are typically just large enough in terms of traffic to require a two-server web farm with a third server as the SQL back-end.  This is a typical set-up.

Up until now, we&apos;ve been able to compete with our .NET and PHP-based competitors, because, although their costs were significantly cheaper for the hardware, our development time was significantly shorter, offsetting the CF licenses that we had to include in the project cost.  It has been very difficult to sell licenses of Enterprise, because it increases the overall project cost by $7400, and the only benefit we can really give non-technical people is &quot;It&apos;s really better to use Enterprise if you have more than one server&quot;  That doesn&apos;t sell well, and usually their response is to just use Standard with some third-party or MS-based load-balancing and failover solution.  However, this solution isn&apos;t very good, and the failures are then blamed on ColdFusion, thus making future sales even more difficult.

With this new price hike, you&apos;ve sealed any chance we had of selling Coldfusion in this multi-server scenario.  There&apos;s no way we can tack on $15,000 to a $35,000 project and make up for that in development time.  You&apos;ve priced us out of competition with .NET and PHP.  Frankly, I&apos;m not sure who you think your competing with if you think this is a reasonable sum to ask us to swallow.

I&apos;ve read and can appreciate your problems with the larger-sized projects.  And I think the thread-throttle thing is a good solution to that.  I have no issue with that restriction.  

I think what we need is three tiers.  One free or nearly so to compete on the low end mom-and-pops, one middle tier priced around 2 or 3 grand for those of us in the middle, and Enterprise for the top end with all doors unlocked and J2EE integration, etc.  Perhaps all this noise is not because the price is too high, but because you&apos;ve opened a hole in your pricing plan, and those of us in that range are falling into it.
				
				</description>
						
				
				<category>ColdFusion</category>				
				
				<pubDate>Mon, 30 Jul 2007 03:48:00-0700</pubDate>
				<guid>http://www.frenches.com/blog/index.cfm/2007/7/30/About-the-CF-8-Price-Increase</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>How to defeat Fear</title>
				<link>http://www.frenches.com/blog/index.cfm/2007/7/3/How-to-defeat-Fear</link>
				<description>
				
				I&apos;ve been through some fairly scary moments in my life.  I suppose everyone would say that of themselves, and there is no doubt a segment of the population that would look at the circumstances I refer to in my life to and scoff at their relative insignificance, but whatever your opinion of me or what I&apos;ve been through, the fact remains that I was scared.  And what&apos;s more, it was the type of situation that could only be resolved by mastering my fear.  I&apos;m sure many of you have faced or are facing a similar situation.  I thought I&apos;d share the methodology I was given to defeat fear every time.  You can use this in any situation ranging from when you&apos;re cowering in your bedroom from some looming doom, to just feeling uncomfortable in an unfamiliar environment.  I have used this consistently, and have yet to find a situation that it doesn&apos;t work for.  So without further doo-doo, I present: 

&lt;span style=&quot;font-size:larger&quot;&gt;The three steps to conquering fear&lt;/span&gt;

&lt;strong&gt;Step 1 - Name your fear&lt;/strong&gt;&lt;br/&gt;
Say out loud - preferably to another person you trust - exactly what you are afraid of.  The key here is two things:  Completeness and Precision.  BE SPECIFIC.  

Bad Example:  &quot;I&apos;m afraid of losing my job.&quot;  No you&apos;re not.  In all likelihood, if you feel fearful of losing your job, that means something is drastically wrong with how things are going at work.  Losing your job would probably be a relief.  What you&apos;re afraid of is the loss of income or perhaps the embarrasment or even perhaps the inconvenience of another job search.  

Good Example:  &quot;I&apos;m afraid Bob will get mad about the TPS reports and will fire me right on the spot tomorrow morning.  Then I&apos;ll have to walk out in front of everyone with my tail between my legs, and Jim, Sue, and Gary will be embarrased of me, and they&apos;ll sever our relationship, and I&apos;ll lose those friends.&quot;

Bad Example:  &quot;I&apos;m afraid one of my kids will get sick&quot;  Not really.  Again, just the fact of your kids getting sick - in and of itself - is almost meaningless to you.  Every kid gets sick, it&apos;s just a part of life.

Good Example:  &quot;I&apos;m afraid one of my kids will get sick with pnemonia or something similarly life threatening, and I won&apos;t be able to afford the medicine they need to get better.  They&apos;ll get worse and worse, and I my entire attention will be on worrying about them, the other children will be neglected, turn into brats that grow up to be bad people  because their mother never paid attention to them. And I&apos;ll feel like a bad mother and wrestle with guilt for the rest of my life until I die.&quot;

The key here is to keep going.  Keep asking yourself, &quot;And then what?&quot;  And keep up that pattern, asking &quot;And then what?&quot; and answering, until one of the following statements comes out of your mouth:
 - &quot;I won&apos;t get [something you really want]&quot;
 - &quot;I&apos;ll lose [something that&apos;s really important to you]&quot;
 - &quot;I&apos;ll feel pain (either emotional or physical)&quot;

Always start with &quot;I&apos;m afraid that...&quot; never &quot;I&apos;m afraid of...&quot;  Phrase your answer in terms of future circumstances.  Use &quot;will&quot; not &quot;could&quot; or &quot;might&quot;.  It&apos;s understood that this is a theoretical possibility not a prophecy, but using these weak words leaves ambiguity in the scenario, which only hinders your attempts to name it exactly.

Don&apos;t let yourself off the hook on this one.  If you&apos;re helping someone through this, don&apos;t let them stop until they&apos;ve really got it.  NO COPOUTS!  Answer honestly.  If you can&apos;t get this step right, the other two aren&apos;t going to help you.  The biggest ally to fear is ambiguity.  As long as the &quot;bad thing&quot; you&apos;re afraid of is a foggy &quot;sense&quot; of how things might turn out &quot;bad&quot;, you will not defeat it.  The first and most critical step is to nail it down.  EXACTLY what are you afraid of?  

As you can see from my examples above, the immense power in this step is that - alot of times - naming what it is that you&apos;re truly afraid of makes it sound silly.  Just hearing it out loud is often enough to dispel the fear.

Which brings up another point.  Each of these steps is abortive.  That is to say, if after step one, you find you no longer feel the fear for the given situation, you are free to skip steps two and three.  In fact, in that regard, step 1 is perhaps the most powerful, because nine times out of ten, correctly and precisely naming your fear is enough to defeat it.

&lt;strong&gt;Step 2:  Assess Probability&lt;/strong&gt;&lt;br/&gt;
If step 1 failed to disple the fear, that&apos;s ok.  It&apos;s just the first step.  The next thing to do is to - as much as you can - realistically estimate how likely your fear is to manifest itself.  In some sense, this step often happens automatically.  That&apos;s why step one is often enough to defeat the fear, because sometimes you specify the fear, and implicitly you realize how unlikely it is, and your fear of it goes away completely.  

In any case, express the likelihood in whatever terms mean something to you.  If you&apos;re like me - a numbers guy - express it in terms of percentage or &quot;x times out of y&quot; chance.  If you&apos;re more of a words person, you might use terms like &quot;It probably will happen,&quot; &quot;It might happen,&quot; or &quot;It&apos;s not very likely.&quot;  Whatever makes sense to you, but honestly evaluate the probability of your fear coming true.  Don&apos;t let the fear or pessimism make this assessment.   Don&apos;t answer &quot;It will probably happen, because bad things always happen to me.&quot;  If you find yourself falling into this trap, assess instead the likelihood that it would happen to someone else in the same situation.  Many times, this will abate the fear, as you realize that the chances are pretty small.  If they&apos;re not, though - if, even after honestly looking at it, you still feel like it&apos;s pretty likely to happen - move on to step 3.

&lt;strong&gt;Step 3:  Assess Your Survivability&lt;/strong&gt;&lt;br/&gt;
Ask yourself, &quot;Can I live through it if it comes true?&quot;  Don&apos;t get caught up here.  Answer the question - &quot;Can I live through it?&quot;  Of course it won&apos;t be fun.  Of course it will be unpleasant.  If it was a pleasant experience we were talking about, you wouldn&apos;t be afraid of it.  Of course it&apos;s going to be &quot;yucky,&quot; but can you survive?  The answer can be only one of two answers:  yes or no.  If it&apos;s yes, this is the last step between being afraid of the situation and just not wanting it to happen.  And that&apos;s the key.  Understand the difference between fear and dislike, distaste, or even a severe desire to avoid a certain situation. The goal of these steps is not to make you like what you&apos;re fearful of.  That&apos;s a pretty unlikely outcome.  Fear of something, though, is distinctly and decidedly different from dislike.  Fear triggers the fight or flight stimulus.  It causes you to feel either like cowering in despair that the world is over, or feeling that action must absolutely be taken immediately, or something horrible will occur.  Either response is illogical, and almost universally makes the situation worse.  As an example.  I severly dislike cleaning the bathroom, but I&apos;m not afraid of it.  Nothing I can do will make me like cleaning the bathroom, but I can overcome a fear of it if that&apos;s something I&apos;m facing at the moment.

Hopefully, the answer to this question is yes.  so far, every situation I&apos;ve faced, the survivability question has had a &quot;yes&quot; answer.  But even if the answer is &quot;no&quot;, you can still defeat fear by resolving yourself to your own death.  We all have to die some day, and once you know it&apos;s coming, there&apos;s a calming peace about it that can make the fear subside.

&lt;strong&gt;Caveats/Warnings&lt;/strong&gt;
 - Guys especially, don&apos;t get caught up on &quot;I&apos;m not afraid of anything.&quot; nonsense.  You may not be cowering and wimpering in the corner.  After all, a real man is a master of courage, but courage is not the absense of fear, but the mastery of it.  If you aren&apos;t afraid of anything, then you&apos;re just too stupid to know what can hurt you.  This method helps you obtain or increase your courage.  With it you will be able to stand in the face of the most fearful and horrifying dangers and look &apos;em straight in the eye without backing down.  It&apos;s the most manly thing you can do.

 - If you&apos;re feeling particularly paralyzed by fear, it&apos;s more than likely you&apos;re dealing with several fears at once.  This can wreak havoc with your attempts to defeat them.  The key here is to do them one at a time.  Just pick one (probably the one that&apos;s got you the most worked up), and - ignoring all the others for the moment - work all the way through the steps until you&apos;re not afraid of THAT anymore.  Then start over with the next biggest fear.  You can take out the most crippling fear this way in as little as a few hours.
				
				</description>
						
				
				<category>Philosophy</category>				
				
				<pubDate>Tue, 03 Jul 2007 09:04:00-0700</pubDate>
				<guid>http://www.frenches.com/blog/index.cfm/2007/7/3/How-to-defeat-Fear</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>The use of Comments</title>
				<link>http://www.frenches.com/blog/index.cfm/2007/6/21/The-use-of-Comments</link>
				<description>
				
				There have been several prominent intelligent programmers that have postulated over the years that if you name your variables and functions well enough, and architect your application well, that comments become unnecessary.

While I agree with the premise - making your code readable enough that comments are unnecessary - I still feel that Comments are necessary... (Wait, what?!)  Or rather, I think they still play an important role and should still be included, though perhaps to a lesser extent.

For one thing, even if your code is completely self-evident, comments help reinforce what&apos;s supposed to be happening in the code.  Let&apos;s face it, most of the time when you&apos;re debugging someone else&apos;s code (or even your own), you eventually find the offending snippet, and stop to wonder, &quot;Was this done intentionally for some reason, or was it an accidental omission?&quot;  Code Commenting helps make it clear.   If the code agrees with the comments, it was intentional, otherwise, it was probably just a brain-fart.  This can save a lot of time and mental anquish.

The second thing I consider comments for is to summarize sections of code.  Almost every IDE out there will color your comments differently than your code.  By summarizing what the next 10 lines of code are doing, I only have to scan 1 out of 10 lines to get the idea of what&apos;s going on.  No matter how well you name your variables/functions, you can&apos;t beat that level of efficieny

The other thing that these proponents seem to forget is that sometimes you just do something clever.  Sometimes you just find a way to save 100 lines of code with a single line that&apos;s a little cryptic.  I suppose some would argue that you should write the 100 lines of code anyway, just so it&apos;s clear, but for me, there&apos;s a limit there.  If I can write a piece of code clearly in two lines or cryptically in 1, I&apos;ll write the second line.  But once you get up to about a 6 or 7 line savings, sorry, but I&apos;ll just add a comment explaining what I&apos;m doing, and you can write me an email telling me I&apos;m the devil.
				
				</description>
						
				
				<category>Software Development</category>				
				
				<pubDate>Thu, 21 Jun 2007 02:30:00-0700</pubDate>
				<guid>http://www.frenches.com/blog/index.cfm/2007/6/21/The-use-of-Comments</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>How to be excellent.</title>
				<link>http://www.frenches.com/blog/index.cfm/2007/6/19/How-to-be-excellent</link>
				<description>
				
				I wrote a while ago on the &lt;a href=&quot;http://www.frenches.com/blog/index.cfm/2007/4/28/The-three-tiers-of-Excellence&quot;&gt;three tiers of excellence&lt;/a&gt;, i.e. the stages one typically goes through to become excellent.  But what does it take, exactly, to reach that third tier?  What qualities define something such that we say &quot;That was REALLY good&quot; as opposed to, &quot;Yeah, it was ok, I guess&quot;?

I&apos;ve been pondering this lately, and here&apos;s the formula I&apos;ve come up with that I think can apply to any commercial industry, personal skill or national pride.  I submit it for your feedback.

Step 1.  Make sure every single aspect of your project is done well according to industry standards.

Step 2.  Perform one or two aspects in an extraordinary, innovative way.

That&apos;s it!  Easy enough, right.  Actually no.  The trick is, you absolutely have to have both.  Too many people think they can get away with just one or the other, and are flabbergasted when the public doesn&apos;t respond well.

As examples, I shall delve into one of my favorite pastimes - the movie picture industry.  As I do, I ask you not to succumb to the tempation to judge these movies based on how well you enjoyed them, but by how well they were received by the public en masse.  Your personal tastes may differ, but if it appeals to a majority of our decidedly motley nation, then I would posit that the authors have indeed produced excellence, even if it&apos;s only excellent at predicting what the baser sects of our society want to see.

Exmaple #1 - The Matrix.
This is my example of something done right.  Let&apos;s see how they measure up to my formula:  Step 1:  Yep, Acting:good, wardrobe:good, writing:good, fun action scenes and funny one-liners:check.  Now let&apos;s look at Step 2.  Anything earth shattering?  You betcha.  The story itself was a complete mind-bender (at least at the time, it&apos;s been redone by now, but at the time, it was a completely new thing).  Also completely new was the addition of bullet-time videography.  People had never seen that 360 pan around a actor before.  It was intense.  You can quibble, I&apos;m sure, over some minor points of my review, or quite possibly complain that I&apos;ve missed something major, but hey - I&apos;m not a film critic.  The main point I&apos;m trying to make here is that they did everything well, and a couple things they did extraordinarily well.  Now let&apos;s look at some examples that thought they could get away with only one of these steps.

Example #2 - Waterworld.
Personally, I enjoyed this movie, but as far as the general public was concerned, it was a total bust.  Why?  Because the creators thought they could get away with only following step 1.  Everything was done well.  Acting, photography, writing, story, plot twists, pacing, wardrobe.  But there was nothing extraordinary about the film.  It was just another - albeit well-done - post-apoctolyptic drama/thriller/thing.

Example #3 - Star Wars: Episode I  The Phantom Menace
What a perfect example of following Step 2 without following step 1.  Here was a movie that had incredible special effects, lush beautiful landscapes and environments, fantastic, broad-reaching story.  But it failed miserably in some of the basics:  Namely acting and dialog.  Mind you, there were some great actors in the movie, but they were either not allowed to pace their lines well, or just not directed well - I don&apos;t know the business well enough to know.  I only know that every conversation sounded artificial and...well...scripted.  And don&apos;t even get me started on Jar-Jar Binks.


Obviously, the existence of three examples that support my theory do not prove anything, but I think that if you look around at the things that you call excellent, you&apos;ll find that they almost always follow this pattern.
				
				</description>
						
				
				<category>Philosophy</category>				
				
				<pubDate>Tue, 19 Jun 2007 08:41:00-0700</pubDate>
				<guid>http://www.frenches.com/blog/index.cfm/2007/6/19/How-to-be-excellent</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>How do you realize a big idea?</title>
				<link>http://www.frenches.com/blog/index.cfm/2007/6/18/How-do-you-realize-a-big-idea</link>
				<description>
				
				This thought has been holding coup in my mind of late.  You can probably surmise the reason - I&apos;ve had a big idea.  It&apos;s probably my biggest yet, and I&apos;m kindof an idea guy, so that&apos;s saying something.  Like, it could be a genre-creating idea.  I&apos;m really, really excited about it, but then I fall into depression as soon as this thought appears in my conscious: &quot;Ok, so now what?&quot;  

Inevitably, this is where I stop when I get most of my ideas.  My ideas are usually big ideas, which is not to necessarily say they are good ideas, just that they take a lot of effort to accomplish - far more than one person could accomplish in any reasonable time-period.

As an example, this idea revolves around creating a computer-based game with an online component.  And it&apos;s a big thing - the type of endeavor that will require a competent marketing team, deep-level engine development, high-level story-telling and model development, as well as an administration and moderation team - and possibly a decent legal team as well.  In all - a lot of people with very different talents coming together under one vision.  But I&apos;m a web developer, not a game developer.  I can express to you with perfect precision how many contacts I have in the game development industry.  It&apos;s zero.  

So I ask you, how does one take an idea and make it happen?
				
				</description>
						
				
				<category>Philosophy</category>				
				
				<pubDate>Mon, 18 Jun 2007 04:10:00-0700</pubDate>
				<guid>http://www.frenches.com/blog/index.cfm/2007/6/18/How-do-you-realize-a-big-idea</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>iPhone + AIR/Apollo</title>
				<link>http://www.frenches.com/blog/index.cfm/2007/6/12/iPhone--AIRApollo</link>
				<description>
				
				So here&apos;s an interesting thought:  The net&apos;s abuzzin&apos; about the iPhone releasing the 29th of this month, and Steve Jobs made the &lt;a href=&quot;http://news.com.com/Apple+opens+iPhone+to+developers-kind+of/2100-1046_3-6190302.html&quot;&gt;announcement yesterday&lt;/a&gt; that the phone will support 3rd-party apps, but only web apps, or Apple-approved apps such as Google Maps, which runs natively with full interaction with some of the phone&apos;s cooler features.  The general consensus is that this is a bit of a cop-out, and will severely hamper the innovation possible for the new device.

But then I started thinking, what if &lt;a href=&quot;http://labs.adobe.com/technologies/air/&quot;&gt;AIR/Appolo &lt;/a&gt;became an Apple-approved app?
				
				</description>
						
				
				<category>ColdFusion</category>				
				
				<category>State of the Web</category>				
				
				<category>Flex</category>				
				
				<pubDate>Tue, 12 Jun 2007 03:37:00-0700</pubDate>
				<guid>http://www.frenches.com/blog/index.cfm/2007/6/12/iPhone--AIRApollo</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Protecting Adobe</title>
				<link>http://www.frenches.com/blog/index.cfm/2007/6/8/Protecting-Adobe</link>
				<description>
				
				I&apos;m seeing a strange and disconcerting trend lately.  It started when I posted &lt;a href=&quot;http://www.frenches.com/blog/index.cfm/2007/5/7/Flex-Coldfusion--Dont-make-me-have-to-separate-you-two&quot;&gt;this article&lt;/a&gt;, which started off with a bit of a rant, but was primarily purposed to help explain some of the idosyncracies of the Flex-Coldfusion integration when using RemoteObject.  The &lt;a href=&quot;http://www.frenches.com/blog/index.cfm/2007/5/7/Flex-Coldfusion--Dont-make-me-have-to-separate-you-two#c6E05CE49-3048-77F0-11A01A83CFD5A6AD&quot;&gt;only response&lt;/a&gt; I&apos;ve received to the post - in fact, the only response I&apos;ve received so far to this blog - tried to paint the picture that my incident was an isolated one, and that the &quot;vast majority&quot; of people had no problems.  (By the way, this comment was posted after I sent the post directly to someone closely associated with Adobe, and was posted at the same general time I recieved that person&apos;s reply via email)

I then saw almost the exact same scenario play out on &lt;a href=&quot;http://blog.superunit5000.com/2006/09/30/macromedia-flex-bullshit/&quot;&gt; Jeff Knooren&apos;s&lt;/a&gt; blog.  And I&apos;ve seen numerous but less blatant examples peppered throughout the blogosphere and mailing lists.

So I have to ask, when did Adobe become so fragile that it needed protecting?  Coldfusion and Flex, among other things have in common the fact that their success is primarily community-driven.  We are constantly fighting the impression that Coldfusion is a kiddie language, somehow inferior or not as capable/useful as .NET or PHP.  Yet, how can we expect the outside world to think anything different when we take an attitude of &quot;Don&apos;t talk bad about Adobe?&quot;  

Here&apos;s the critical point:  when we take a protective stance, the impression this gives to outsiders is not that Adobe has no faults, it&apos;s that Adobe&apos;s faults are so bad that they must be kept secret, and the public cannot know about them.  This is a far worse market position for our beloved languages than, say, admitting that the Coldfusion-Flex integration needs some work, but Adobe&apos;s on it, and once it&apos;s polished, it will be incredible.

ColdFusion is f*ing incredible, and I say Scorpio is the best thing that happened to the language so far.  For the first time since MX, Adobe (yes, and their predecessors) have focused the bulk of their efforts not on trying to keep up with other languages on their strenghts, but on the one area where ColdFusion absolutely obliterates all others - Fast and Easy.  Likewise, Flex is an amazing leap forward for the web community.  Macromedia was smart to get into it when they did, instead of jumping on the AJAX bandwagaon, and as a result, Flex is maturing nicely as a language, is far superior to AJAX, and is way out in front of &lt;a href=&quot;http://silverlight.net/&quot;&gt;Microsoft&apos;s late arrival.&lt;/a&gt; 

But these languages are not perfect, and trying to pretend they are isn&apos;t fooling anyone.  I merely makes us as a community look like a &lt;a href=&quot;http://en.wikipedia.org/wiki/Snake_oil_salesman&quot;&gt;snake-oil salesman&lt;/a&gt;.

Bottom line is, if you want the world to think Coldfusion and Flex are great, we first need to check our own attitude.  Maybe we&apos;re suffering from an inferiority complex as a community.  Maybe we&apos;ve been so overwhelmed with Microsoft propoganda and open-source fanatacism that we&apos;re actually starting to believe that these languages outstrip ColdFusion.  They don&apos;t.  Not on our field anyway.  Sure each has its uses.  If you&apos;re programming for an entirely MS house, and you need a small app that needs to integrate tightly with Exchange, ActiveDirectory, and Sharepoint - you know what?  .NET is probably going to be a good choice for you.  And likewise, if you&apos;re trying to put together a web app using volunteer programmers and a total hardware/software budget of $500, PHP is likely your best bet there.

But if you&apos;re in the 90% of businesses that are neither Microsoft evangelists, low-budget garage-based shops, nor looking to build an enterprise application for one of the Fortune 500 companies, ColdFusion is almost guaranteed to be the most cost-efficient, maintainable, scalable option for you.  Why?  because it&apos;s FAST and EASY!  It makes doing 90% of what you could ever want to do extremely simple to implement, and provides all the hooks necessary to do the other 10% in the languages that excel in those areas.  How can you possibly consider this language to be anything other than a godsend?

So take off your pity-party panties, CF community.  ColdFusion lags behind .NET and PHP in marketshare for one reason and one reason only.  It costs something.  The fact that it holds its own in market where it&apos;s competetors DON&apos;T COST ANYTHING is a phenomenal testament to the usefulness and value of the language.

You are part of one of the most exciting times in the web&apos;s history, and you are part of the community that backs not only the greatest tool for our industry but the future as well.

Start acting like it!
				
				</description>
						
				
				<category>ColdFusion</category>				
				
				<category>Flex</category>				
				
				<pubDate>Fri, 08 Jun 2007 02:57:00-0700</pubDate>
				<guid>http://www.frenches.com/blog/index.cfm/2007/6/8/Protecting-Adobe</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Non-Updating Flex</title>
				<link>http://www.frenches.com/blog/index.cfm/2007/5/29/NonUpdating-Flex</link>
				<description>
				
				Here&apos;s a nasty little gotcha I&apos;ve found that I wanted to pass along.  As you probably know, Flex Builder creates a html-template directory in each new Flex project, which is uses whenever it builds (compiles) the project.  Apparently, the way Flex Builder uses this is to compile the .swf first and THEN copy over the contents of the html-template folder.  I discovered this because we had somehow gotten a copy of our main.swf file into the html-template directory.  As such, none of our changes were showing up in the finished .swf, because they had been overwritten with the old copy from the html-template directory.

Just in case someone else runs into the same thing.
				
				</description>
						
				
				<category>Flex</category>				
				
				<pubDate>Tue, 29 May 2007 02:40:00-0700</pubDate>
				<guid>http://www.frenches.com/blog/index.cfm/2007/5/29/NonUpdating-Flex</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Gradient Canvas for Flex</title>
				<link>http://www.frenches.com/blog/index.cfm/2007/5/27/Gradient-Canvas-for-Flex</link>
				<description>
				
				I&apos;ve just posted this on &lt;a href&quot;=http://www.adobe.com/cfusion/exchange/index.cfm?event=extensionDetail&amp;extid=1192518&quot;&gt;Adobe Exchange&lt;/a&gt;.  I&apos;m not sure why, but the built-in containers for Flex 2 do not have a built-in capabilities for a gradient-background.  You can apply one, of course, but it&apos;s not particularly simple.  This is weird, I think, because the &lt;mx:Application&gt; tag does have an easy way to set a gradient back-ground, and the Application tag is a Canvas under the covers.  

Nevertheless, the gradientability is in there, and because Flex is so lovingly extensible, I just created a GradientCanvas container that you can feel free to take, copy, modify and use in your application.  You can grab it from the &lt;a href&quot;=http://www.adobe.com/cfusion/exchange/index.cfm?event=extensionDetail&amp;extid=1192518&quot;&gt;Adobe Exchange&lt;/a&gt; or you can view my &lt;a href=&quot;http://www.frenches.com/gradientcanvas/gradientcanvasexample.html&quot;&gt;sample&lt;/a&gt; and &lt;a href=&quot;http://www.frenches.com/gradientcanvas/srcview/index.html&quot;&gt;View Source&lt;/a&gt; from there.
				
				</description>
						
				
				<category>Flex</category>				
				
				<pubDate>Sun, 27 May 2007 07:52:00-0700</pubDate>
				<guid>http://www.frenches.com/blog/index.cfm/2007/5/27/Gradient-Canvas-for-Flex</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>The DAMMIT keyword</title>
				<link>http://www.frenches.com/blog/index.cfm/2007/5/15/The-DAMMIT-keyword</link>
				<description>
				
				Ray Camden has a &lt;a href=&quot;http://ray.camdenfamily.com/index.cfm/2007/5/15/Coolest-Windows-Feature-Ever&quot;&gt;post&lt;/a&gt; venting about an admitedly annoying feature of the Windows OS.  I completely agree with Ray&apos;s sentiment, but it brought to mind an idea I&apos;ve had that could have alleviated Ray&apos;s shagrin.

I&apos;d like to propose a universal DAMMIT keyword to be implemented in all programming languages and command-line syntaxes.  This special keyword essentially bypasses all idiot-proofing warnings and safeguards and causes the base command to be executed regardless.

Example

&lt;code&gt;
DROP TABLE(employees)
GO

 -- Cannot drop table EMPLOYEES.  Table is in use

DROP TABLE(employees) DAMMIT
GO

 -- Command completed successfully
&lt;/code&gt;

Obviously this could be abused, so users may need to provide their &lt;a href=&quot;http://www.frenches.com/blog/index.cfm/2007/5/15/Technical-Competence-ID&quot;&gt;TCID&lt;/a&gt; to unlock this functionality.
				
				</description>
						
				
				<category>Software Development</category>				
				
				<pubDate>Tue, 15 May 2007 04:45:00-0700</pubDate>
				<guid>http://www.frenches.com/blog/index.cfm/2007/5/15/The-DAMMIT-keyword</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Technical Competence ID</title>
				<link>http://www.frenches.com/blog/index.cfm/2007/5/15/Technical-Competence-ID</link>
				<description>
				
				I&apos;ve always felt that my life would be immeasurably easier if I could apply and qualify for a Technical Competence ID card.  In this day and age, isn&apos;t this a concept that is long past due?  How many times have you experienced this?  You walk into Best Buy to pick up a laptop they&apos;ve got on sale, and you necessarily have to engage one of their wonderfully competent salespeople  (I&apos;m sorry, I mispelled that word before &quot;competent&quot;  please just remove the &quot;nd&quot; and the &quot;r&quot;).  You tell them you&apos;d like to buy the HP 389xII, and, of course you&apos;re presented with this question, &quot;M-hmm, and what are you going to use the computer for?&quot;

At this point, the first thought that pops into my head is, &quot;If I were to try to explain to you what I&apos;m going to use the computer for, we&apos;d spend the whole day here while I tried to educate you up to the level where we could have an intelligent conversation.&quot;  But I don&apos;t say that.  Somehow, however, I need to convey to this person that I know what I&apos;m doing, I know what I want, and please just take the key out of your pocket, open up the cage, and pull one of those shiny boxes out of it so I can pay for it, take it home and forget who you are.  I don&apos;t say that either, however.  Usually what I try to do is convince this person of my technical competence by using words that are bigger than he understands, which usually does the trick.  Let&apos;s face it however, this is slightly demeaning and degrading for the salesperson, and as much as I resent his well-intentioned intrusion into my buying process, he&apos;s probably not really a bad guy or even stupid.  He&apos;s more than likely just some guy trying to get through college and make enough money to buy his own geek toys.  There&apos;s no real reason I want to make this guy feel bad about himself.  I just want to buy the computer without hassle.

Here&apos;s where my fantasy life takes over.  (Admittedly, my fantasy life is lame, but it works well for the moment).  In my fantasy, instead of saying anything, I just pull out my Technical Competence ID card, and the sales person says, &quot;I see Mr. French.  Sorry to have bothered you.  Just give me a second while I get your computer.&quot;   Doesn&apos;t that sound like a better situation for everyone involved?

I would gladly take an annual certification and pay, say a $100 fee for the privilege of weilding a universally recognized card that proved I had a brain in my head and a general knowledge of technology.

Of course, the applications are near-infinite.  Imagine this tech-support call:
&lt;pre&gt;
   Tech:  Thank you for calling [ISPname], how may I help you?
   You:   My router&apos;s flaking out, I think I&apos;m getting interference on the line.
   Tech:  Ok, let&apos;s take first things first.  Is your computer on?
   You:   Yes.  My TCID is 4475639839.
   Tech:  Ok, just ftp your router logs and I&apos;ll take a look on our end and call you back.
   You:   Thank you very much.
&lt;/pre&gt;
Tell me, honestly.  Is there any one of you that wouldn&apos;t give up one of your kids for this time-saver?

Please, somebody (not Microsoft), create this certification process and save the IT world millions of hours a year, which we promise to then spend on continuing to solve the worlds biggest problem such as &quot;getting your Outlook to work.&quot;
				
				</description>
						
				
				<category>Software Development</category>				
				
				<category>Philosophy</category>				
				
				<pubDate>Tue, 15 May 2007 04:24:00-0700</pubDate>
				<guid>http://www.frenches.com/blog/index.cfm/2007/5/15/Technical-Competence-ID</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Sharing a name among checkboxes</title>
				<link>http://www.frenches.com/blog/index.cfm/2007/5/10/Sharing-a-name-among-checkboxes</link>
				<description>
				
				Here&apos;s a tip you might have missed.  Did you know if you reuse a name for more than one checkbox control in your form, your result on the processing side is a comma-delimited list?  This is particularly useful for numeric IDs.  Check out this reporting app:
				 [More]
				</description>
						
				
				<category>ColdFusion</category>				
				
				<pubDate>Thu, 10 May 2007 07:42:00-0700</pubDate>
				<guid>http://www.frenches.com/blog/index.cfm/2007/5/10/Sharing-a-name-among-checkboxes</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Objects on the fly</title>
				<link>http://www.frenches.com/blog/index.cfm/2007/5/9/Objects-on-the-fly</link>
				<description>
				
				Did you know that functions have references in CF?  This makes for some interesting mechanics, one of which is the ability to create (almost) objects on the fly without a CFC.  Think about it.  An object is just a collection of properties and methods, right.  So if you could create a function and stick it in a structure key along with other properties, you have an (almost) object.  Consider the following:
				 [More]
				</description>
						
				
				<category>ColdFusion</category>				
				
				<pubDate>Wed, 09 May 2007 12:11:00-0700</pubDate>
				<guid>http://www.frenches.com/blog/index.cfm/2007/5/9/Objects-on-the-fly</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Funny CF7 Bug</title>
				<link>http://www.frenches.com/blog/index.cfm/2007/5/9/Funny-CF7-Bug</link>
				<description>
				
				I came across this accidentally, but it gave me a chuckle.  Try entering the following code in a simple index.cfm:

&lt;code&gt;
&lt;cffunction name=&quot;theFunk&quot;&gt;
	&lt;cfset doSomething=true&gt;
&lt;/cffunction&gt;

&lt;cfset reference = theFunk&gt;
&lt;cfset reference.wrong = &quot;What?!&quot;&gt;
&lt;/code&gt;

Can you guess what would happen?  I figured it would probably throw an error, but the error it actually threw surprised me.
				
				</description>
						
				
				<category>ColdFusion</category>				
				
				<pubDate>Wed, 09 May 2007 06:26:00-0700</pubDate>
				<guid>http://www.frenches.com/blog/index.cfm/2007/5/9/Funny-CF7-Bug</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Flex? Coldfusion?  Don&apos;t make me have to separate you two!</title>
				<link>http://www.frenches.com/blog/index.cfm/2007/5/7/Flex-Coldfusion--Dont-make-me-have-to-separate-you-two</link>
				<description>
				
				Warning:  I&apos;m about to rant.  If you prefer to skip the emotion, &lt;a href=&quot;#thepoint&quot;&gt;feel free&lt;/a&gt;.

As much as possible, I prefer not to criticize others, especially not in areas in which I myself am not expert, but I am thoroughly disappointed in Flex, at least in its ability to integrate with Coldfusion.  RIAs have been coming into their own for quite some time now, and when I first heard about Flex (2), Adobe was fairly screaming about how easy Flex and Coldfusion worked together.  I was very excited about the possibilities, and began preaching about revolutionary change in the web, the death of AJAX and possibly even of Desktop applications, especially with the ability to push data with Flex (or Live Cycle as it&apos;s now called) Data Services.  

&quot;Woo-hoo!&quot; I thought, and imediately dove in.  That was a month ago, and I&apos;ve just today gotten a hello world app to behave reliably - in that I feel like I could reasonably deploy it and be confident it would continue to work as designed.  It has been a nightmare of uninstalling and reinstalling, tweaking settings in configuration files and in flexbuilder project settings (and in code).  I&apos;ve tried on multiple machines, with a couple different versions of Coldfusion.  But getting these two applications (Flex and Coldfusion) to talk to each other proved to be slightly more difficult than training my dog to chew with his mouth closed.  It has been a huge disappointment, mostly because my hopes were so high based on the quality organization that Adobe is and the intelligence with which they usually deploy their products.

Alright, so now that that&apos;s off my chest, I didn&apos;t actually write this post just to complain.  In trying to fix this problem, I researched dozens of blog posts, forum threads and articles, and found people everywhere that were having the same or similar problems I was, and frankly, they have all been surprisingly consistent in being considerate enough to post what they did to finally fix the problem.  &lt;a name=&quot;thepoint&quot;&gt;&lt;/a&gt;However, nowhere did I find a thorough explanation of WHY things weren&apos;t working, or how they&apos;re supposed to work.  

&lt;strong&gt;The point&lt;/strong&gt;&lt;br&gt;
So, I thought I&apos;d give my synopsis of what I&apos;ve learned over the last month in the hopes that it will save someone else the trouble I went through.  It really is everything we dreamed.  It&apos;s just that the current iteration is a little...&lt;em&gt;quirky&lt;/em&gt;
				 [More]
				</description>
						
				
				<category>ColdFusion</category>				
				
				<category>Flex</category>				
				
				<pubDate>Mon, 07 May 2007 05:26:00-0700</pubDate>
				<guid>http://www.frenches.com/blog/index.cfm/2007/5/7/Flex-Coldfusion--Dont-make-me-have-to-separate-you-two</guid>
				
			</item>
			
		 	
			</channel></rss>
