Tom Peer

Subscribe to Tom Peer: eMailAlertsEmail Alerts
Get Tom Peer via: homepageHomepage mobileMobile rssRSS facebookFacebook twitterTwitter linkedinLinkedIn

Top Stories by Tom Peer

A two-part series looks at techniques for shifting workload away from the application server and onto the database by using "extra" database tables. It's just an average search - three full text indexes, ten subselects on many-to-many joins, and a bit of Pythagoras - to find results within 2km using latitude and longitude. It's the sort of query that makes your database give up just thinking about it, and your customers want to run it twice every second. Sometimes databases will surprise you with just how quickly they can perform complex tasks. Sometimes, it's the opposite. You've normalized everything, indexed everything, cut down NULs, applied foreign keys, etc., and still it runs slowly. The usual suspects are the tools that get used far more in Web publishing than the financial and administrative tasks on which database performance benchmarks are often based, f... (more)

JavaScript Without the Headaches

Coding ColdFusion and coding JavaScript are about as far apart on the productivity spectrum as it's possible to be. CF tags are neat, easy to read, tolerant, and fun to write. JavaScript is none of that. It has all the drawbacks of traditional languages, with the added disadvantage of sitting somewhat awkwardly within the HTML document model. Anything but the most trivial JavaScript is difficult to write, difficult to debug, and difficult for either the author or another developer to revisit, but, as much as I'd like to, it isn't possible to do without it for interactive Web sit... (more)

Thinking Outside the Table PART 1

A two-part series looks at techniques for shifting workload away from the application server onto the database by using "extra" database tables. Most ColdFusion programmers understand that when it comes to bulk inserting into a database, it isn't good practice to loop over text files one line at a time with a . However, when faced with the realities of a data feed that needs preprocessing, comparing to existing data, and then postprocessing, good intentions sometimes fall by the wayside. The theory is simple - if you have a large amount of data (typically tabbed or comma ... (more)


One of the reasons I was first drawn to ColdFusion was the built-in functionality for such things as sending e-mail, making HTTP requests, FTP uploads - all the myriad subsidiary functions you inevitably find yourself using when you build and manage large sites. Content has to be downloaded from here, uploaded to there, and e-mailed to thousands of users every day. Using only standard ColdFusion functionality keeps things neat and easy to support. And for all the warnings about not running an SMTP server on the same machine as your Web server, I'm sure many developers have a site... (more)

Back to Basics: When sites run into trouble, it's usually the database that's the problem, not ColdFusion

[Ed. Note: We've run articles on this in the past, but - we can never say it enough!] Cutting ColdFusion code is fun, and therein lies ColdFusion's biggest problem. It's too easy to get carried away writing code to do things that should be happening in the database itself - or often shouldn't be happening at all. It's also just too easy to use. You can get up and running far too quickly, and get into trouble even quicker. Sometimes experienced developers get carried away trying to do too much; beginners often start to run before they can walk. When I came across a site where a ... (more)