Subscribe: Tom Muck's Blog: Dreamweaver
Added By: Feedage Forager Feedage Grade B rated
Language: English
build  cartweaver  code  coldfusion  community  database  dev ftp  dreamweaver  file  ftp  new  page  server  site  sql  web 
Rate this Feed
Rate this feedRate this feedRate this feedRate this feedRate this feed
Rate this feed 1 starRate this feed 2 starRate this feed 3 starRate this feed 4 starRate this feed 5 star

Comments (0)

Feed Details and Statistics Feed Statistics
Preview: Tom Muck's Blog: Dreamweaver

Tom Muck's Blog: Dreamweaver

Tom Muck's Blog


Spring cleaning sale

Wed, 06 May 2015 23:51:38 GMT

All extensions on sale 40% off. Use promo code "springcleaning".

Update: This was an old post, but it's still at the top so I've reinstated the code for this year as well. Take 40% any purchase on the site.


Thu, 22 Jan 2015 15:42:15 GMT

I find it amazing that most developers I know do not know how to index, or don't consider it part of their job. As a developer, the most important part of the job is indexing the database. It is not a task for the DBA or anyone else.

The importance of backups

Fri, 11 Apr 2014 12:57:42 GMT

I'm currently running a 5 or 6 year old backup of my web site. Luckily, the data is current, since I'm running nightly SQL Server backups, and since the site is mostly data driven, things are still mostly working. We had some construction in the house, and the server filled with dust causing one of the drives to fail -- the main data drive. Backups failed too, so I'm left with an old copy. It's possible that the problem was not the dust, but there was a LOT of dust in the machine. It's about 7 years old, so I was due for a new hard drive, but I'd rather control the circumstances myself.

Update: Hard drive restored, back to normal.

Spring sale

Sun, 09 Jun 2013 13:48:47 GMT

Spring shopping! Use promo code "spring" at the checkout and take 30% off all products. The promo code is good until midnight PST on 6/30/2013.

Deployment Process in ColdFusion Builder

Mon, 14 Feb 2011 11:00:00 GMT

I decided to start using ColdFusion builder alongside Dreamweaver for my development. At work, we use Eclipse exclusively, but it is severely limited, and much of it doesn't work right (code hints...what the heck is hamcrestassert and why does it get inserted when I move to the next line???). I'm much more comfortable coding in Dreamweaver -- especially since the enhancements of CS4 and CS5 -- but have started liking the Ant build process and the Subversion integration of Eclipse/ColdFusion Builder. So I decided to start setting up projects in both. My work environment is a lot different from the typical development workflow that I am accustomed to, so I wanted to set up an Ant build script for my local use on my laptop, and a remote FTP development server. ColdFusion Builder has most of what is needed, with the exception of a couple of Java classes for the FTP functionality (commons-net-*.jar and jakarta-oro-*.jar). Download these and add to the ColdFusion Builder (or Eclipse) plugins /lib folder for Ant, located here typically: C:\Program Files\Adobe\Adobe ColdFusion Builder\plugins\org.apache.ant_1.7.1.v20090120-1145\lib I haven't found a lot of useful information for the ColdFusion developer on setting up Ant build scripts, so hopefully this will help someone. Basically, a build script is XML that contains a project tag and one or more target tags under it. You can also set up a property file that contains details about your project. This makes it easier to set up a generic build script that can be reused. Simply change the properties in the property file. I'm going to assume that the project will have all the files to be deployed at the root of the project. This is not always the case, and indeed not usually the case, but changing paths is easy enough in the script. I'll add a build folder to the root of the project, and add the and build.xml files to this directory. My file looks like this: #deploy to LOCAL server deploy.dir.local=c:/inetpub/wwwroot/mysite #deploy to DEV server #deploy to LIVE server It contains information on the local directory where I do local testing, the FTP site where the development server resides, and the live server where the final deployment will happen. My build.xml file looks like this:           Copying files to local webserver...                                      Copying files to dev FTP server ${}...       

Upgrades and Backups: Automated Backup for SQL Express

Thu, 10 Feb 2011 00:16:41 GMT

I've been lax in my blogging and my ColdFusion duties lately. I just today installed CF 9 for the first time, and I'm usually way ahead of the curve on that. Work has been super busy, and we are stuck on CF 8 at the office for the foreseeable future. So far, the upgrade has been quick and painless. Now I need to start diving into the new features. I think the main feature for me is the general performance enhancements, but I'm sure I'll get into the Office integration as well. One nice thing about upgrading is being able to try out the features as Enterpise version for a month before putting in the license key for Pro version and losing the functionality. I was also thinking about a SQL Server upgrade. I'm running the Express version, which is perfect for most small-medium web sites. One thing it doesn't have is a way to do maintenance. I've been doing manual backups. Well, after looking at the price of a SQL Server license, I decided to look for a good automated backup. I found a backup script online at and modified it to meet my needs (made directory name a parameter) CREATE PROCEDURE [dbo].[sp_BackupDatabase] @databaseName nvarchar(1024), @type CHAR(1) = 'F', @directory nvarchar(1024) = 'C:\SQLBackup' AS BEGIN SET NOCOUNT ON; DECLARE @sql NVARCHAR(1000) DECLARE @currentDate NVARCHAR(20) SELECT @currentDate = REPLACE(CONVERT(VARCHAR, GETDATE(),111),'/',') + REPLACE(CONVERT(VARCHAR, GETDATE(),108),':',') IF @type = 'F' SET @sql = 'BACKUP DATABASE ' + @databaseName + ' TO DISK = ' + @directory + '\' + @databaseName + '\' + @databaseName + '_Full_' + @currentDate + '.BAK' IF @type = 'D' SET @sql = 'BACKUP DATABASE ' + @databaseName + ' TO DISK = ' + @directory + '\' + @databaseName + '\' + @databaseName + '_Diff_' + @currentDate + '.BAK' WITH DIFFERENTIAL' IF @type = 'L' SET @sql = 'BACKUP LOG ' + @databaseName + ' TO DISK = ' + @directory + '\' + @databaseName + '\' + @databaseName + '_Log_' + @currentDate + '.TRN' EXECUTE sp_executesql @sql END Next, I created my own stored procedure for deleting old database backups. Basically, in a "real" SQL Server, the backup task will delete backups back to a date you specify. We'll pass in the database name, type of backup, timeframe (in weeks), and the directory name. CREATE PROCEDURE [dbo].[sp_RemoveOldBackups] @databaseName sysname, @backupType CHAR(1) = 'F', @howlong integer = 4, @directory nvarchar(1024) = 'C:\SQLBackup' AS BEGIN SET NOCOUNT ON; DECLARE @type nchar(3) SET @type = 'BAK' if @backupType = 'L' BEGIN SET @type = 'TRN' END DECLARE @backupPath nvarchar(2048) SET @backupPath = @directory + '\' + @databaseName declare @DeleteDate nvarchar(50) declare @DeleteDateTime datetime set @DeleteDateTime = DateAdd(ww, -1 * @howlong, GetDate()) set @DeleteDate = (Select Replace(Convert(nvarchar, @DeleteDateTime, 111), '/', '-') + 'T' + Convert(nvarchar, @DeleteDateTime, 108)) EXECUTE master.dbo.xp_delete_file 0, @backupPath, @type, @DeleteDate,1 END Now, rather than use Windows scheduled tasks for this, I wanted a simple ColdFusion scheduled task. The stored procedures should be stored in the master database, so you'll need a datasource that will allow execute permissions on these two stored procedures. Finally, save the following into a ColdFusion file and store it in one of your web sites. Set the scheduled task to execute once a week.

Dreamweaver CS5

Tue, 08 Jun 2010 03:41:04 GMT

I haven't been posting a lot lately, but had to post to recommend the latest version of Dreamweaver -- CS5. I usually upgrade to the latest version, because for my business I have to maintain compatibility with current versions of the program, but this is the first time in a while that I feel like I have to heartily recommend the upgrade to people spending good money. CS5 has quite a few of the features I've been wanting in the program for years -- foremost among them, code hints for custom code, code completion, and context-sensitive help. Most good code editors have this built in, but DW has not had capabilities in this regard. CS5 changes that and turns DW into a quality coding environment.

For ColdFusion coding I have been using Eclipse at work for the past couple years, only because that is the standard that we have at the office and require it's Subversion support, but it's sadly lacking in many key areas. It doesn't have a design view, which is a pretty basic feature for a web development environment. Also, the most frustrating part is that the code hinting, code completion, and context-sensitive help is pretty poor, and often inaccurate. I don't know how many times I've hit a key and had some bizarre code completion happen that has no relation to what I'm typing. A good coding environment is two steps ahead of you and knows what you want to type next. Apple's Xcode IDE is brilliant in this regard, as is Microsoft's coding environments. Dreamweaver is finally starting to get there, after all these years. Not quite there yet, but it's much better than alternatives for ColdFusion programmers, in my view. For PHP coding, it's pretty great, too.

All of my available extensions seem to work without issue in Dreamweaver CS5. If anyone has any issues, please let me know.

Sale on extensions

Fri, 13 Nov 2009 12:40:55 GMT

I'm having a sale on all extensions from now until December 31, 2009 -- 30% off all purchases. Use promo code "take30" when checking out and the price will be reflected in the cart.

3000 Articles

Sat, 21 Feb 2009 14:35:18 GMT

Community MX released its 3000th article the other day. It's hard to believe we have been at it for 6 years now releasing 2 articles every day. In celebration, we're having a contest that ends March 10th. Sign up to win an Adobe software title or other prize at My most recent articles there are below: Conditional PHP: Using the Ternary Operator09-Feb-09 Category: PHP Description: There are many uses for conditional statements in programming. The basic principle of conditional programming is that you want to execute code based on a certain condition. The essence of conditional programming is executing code based on the condition being true, with an alternate piece of code being executed if the condition is not true. The article will explain the ternary operator, which creates if/else logic that is more concise than other methods. Using Table Aliases29-Jan-09 Category: SQL Description: When writing SQL statements, using the table names in the code is often necesary to avoid confusion in the database server. For example, if you have a Customers table with a customerid field, and an Orders table with a customerid field, if you are joining both tables, you will need to use the table name on the customerid field in order to differentiate between the two tables. This can turn your queries into much longer, hard to read statements -- especially if you are using proper naming conventions and your table names are long and descriptive. Using a table alias in the code is a beneficial way to increase readability and performance. Readers of this article should understand basic SQL coding, including joins. It will apply to most databases (SQL Server, MySQL, Access, etc). Using Subqueries15-Jan-09 Category: SQL Description: Most database systems support the use of subqueries. If you have never used them, don't know what they are, or are confused by joins, then this article is for you. I'll be using the Northwind sample database that is readily available for SQL Server and Access, and available as a download for MySQL from my site. Adding an Auto-Logout Feature - Part 1 17-Dec-08 Adding an Auto-Logout Feature - Part 2 06-Jan-09 Category: Javascript Description: If you have a site that is built using one of the server technologies, like ASP, PHP, or ColdFusion, that has a login feature, chances are you also have a logout function. What happens when the user keeps the browser open and doesn't log out? Many times he will go back to the page and attempt to click on something, only to find out that he has to login again. For example, the user might fill in a complex form and walk away, only to come back to try to submit the form and be kicked out of the site. Because this is a client-side JavaScript function, it will work with any server-side language. HTML/CSS Crash Primer 02-Dec-08 Category: CSS, HTML Description: This article is intended as a re-introduction to HTML and CSS, and something I have used in the past to give to any new employees who may have had HTML experience, but exhibited some bad habits in actual coding. You may think HTML is simple and you may think you know all you need to know, but HTML is misused daily. Following are some basics to help correct some of the common problems. Creating a Formatted Unique ID in PHP19-Nov-08 Category: PHP Description: There are often times that you need a unique id in an application, but don't want to use an auto-incrementing integer. If an application is well designed and secure, an auto-incrementing number is usually fine, but to be on the safe side a unique identifier other than an integer is better as an id. For example, a customer number is a good use of a unique identifier, or an order number. Blank Pages in PHP 06-Nov-08 Category: PHP Description: If you are a PHP developer, you ar[...]

New round of SQL injection from China

Fri, 08 Aug 2008 17:02:55 GMT

Be on the watch for new SQL injection attempts, coming from China, using an ascii-encoded binary string. Essentially, what it does is find a vulnerable database and append a string to the fields in every table. The string is a closing tag with a script, followed by a comment to hide the rest of the page:

I put something like this in my application.cfm file to re-rout the attackers temporarily:

0',cgi.query_string) OR findNoCase('declare',cgi.query_string)
OR findNoCase('EXEC(@',cgi.query_string)>

Dreamweaver 10 (CS4) Beta open to the public

Tue, 27 May 2008 23:13:36 GMT

Adobe has released the latest version of Dreamweaver to public beta at As always, I have had a love/hate relationship with the program. Having used it a while now, I can say the same for the new version. I like many of the new features, like the related files views, the Subversion integration, and the collapsable panels (it's about time for this feature!). I will definitely be using DW 10 in the future, and have no intention of going back to the previous version. The collapsable panels alone are worth the price of admission. DW has always had problems with the usability of panels from the earliest days, but this time they got it right.

On the other hand, some things look like they were tacked on as an afterthought, and the overall interface is not as user-friendly as a basic Windows program should be that has been around for as many years as it has. The title bar is gone and the path to the current file has been stuck into a little spot that is reserved for page tabs. It sounds like a minor thing, but it's one of the most important parts of coding in a multi-tab editor. As soon as you open more than a few pages, the file path is cut off, and with a few more open, it disappears. Major step backwards here:


The other obvious usability problem here is the black text on dark grey in the tabs. On a laptop it's impossible to see, as is the white text on the dark grey. Also, the individual pages have a close button (X) which is a great bonus, but it would have been nice to have a close button on the frequently used panels (like Find/Replace) so you don't have to right click to pick a menu item to close a panel. Also, the entire border of the program is gone, making it blend into other open programs on your desktop. I understand this is the new "owl" interface, but owls should be left in the woods to live in trees. We really don't need the artsy fartsy stuff in a code editor.

But all in all, I would recommend the program. I use Eclipse all day long at my place of employment, and it is simply not as intuitive or easy to use as DW. Code view in DW has come a long way since the days of Ultradev. Download it and try it out, and by all means make suggestions in the forums on things that can be made better.

CMX is 5 years old

Tue, 01 Apr 2008 12:33:13 GMT

Community MX is celebrating its 5 year anniversary this week. They said it would never last, but we have been putting out 2 pieces of fresh content every day for 5 years, for a total of 2557 articles, tutorials, extensions, Jumpstarts, and more. Congratulations to the partners at CMX for 5 good years.

New phishing scams using Ebay

Sun, 24 Feb 2008 22:43:06 GMT

There seems to be a new rash of scamming/phishing attempts, and eBay is partly to blame. It seems eBay itself has a redirection service in place on one of their pages. Scammers are using links that point to the real eBay site, but redirect to the scammer site. This is especially insidious, as the link you see and the link you hover over are actual eBay addresses, and eBay is actually forwarding you to the scammer site. Below is a the link used in one I received:

It's amazing that with all the phishing attempts out there, eBay is actually falling down on the job by allowing their own site to redirect unsuspecting users to the phishing web site.

Open House at Community MX

Mon, 24 Dec 2007 14:06:56 GMT

Community MX is having an open house where visitors are able to view over 2400 articles and tutorials. Community MX is a subscription service, so this is a good opportunity to see what is available. The open house is from 12/24/2007 through 1/1/2008. For a full list of what I've written for Community MX, see this page:

Are you an author?

Fri, 30 Nov 2007 22:53:24 GMT

Community MX is always looking for new writers to join as full-time partners, or to simply supply tutorials on a one-off basis. CMX pays it's authors, so if anyone is interested in writing one or more tutorials or extensions, contact me via my contact form and I'll put you in touch with the right people. I've been with CMX since the beginning in 2003, and it is a great place to get exposure, help out your fellow developers, and get your content out there.

CMX is focused on Adobe products, but also all web technologies -- html, asp, php, coldfusion, sql, css, javascript, and any other technology related to web development.

New Cartweaver plug-in for downloadable products

Sun, 04 Nov 2007 17:55:52 GMT

I created a new plugin for Cartweaver for building a digital download store that was released yesterday. The Cartweaver Downloadable Products Plug-In was created for Cartweaver 3 for both PHP and ColdFusion. Here is the announcement from Lawrence at

The Cartweaver development team is pleased to announce the release of the Downloadable Products Plug-in for Cartweaver 3 CF

Now you can deliver your digital products immediately! This Cartweaver plug in allows your customers to download documents, PDFs, music, photos, artwork, software, and other digital products right away!

- Easy to integrate with your Cartweaver 3 CF store
- Upload your digital products via the store admin
- Customers can log in and download immediately after purchase
- Customers can re-download as few or as many times as you allow
- Customers can update contact information
- View entire order history
- Print out previous history

Available now! Go to the Products - Plug-Ins page and log in for availability and pricing.

Moving servers

Thu, 25 Oct 2007 01:40:36 GMT

I'm in the middle of a server move for this site and a few others. I'm moving to a dedicated server on IIS 6 and ColdFusion 8 using SQL 2005. If anyone notices any problems, let me know at tommuck AT hotmail DOT com. Everything seems fine from here, but a few email problems still need to be worked out. The dark grey background is the new server...ugly green, old server.

PHP Class for CSV File Downloads

Sat, 13 Oct 2007 15:18:02 GMT

I dug up an old PHP class that I wrote a few years back and thought I would post it for anyone who needs CSV functionality on their site. It will work with any PHP recordset, including Cartweaver recordsets, which use my custom DB abstraction class (only for MySQL, though). The CSVFile class is simple, and can be downloaded here.

The class is typically used on a page by itself, or on any page within conditional statements. You link to the page and the file download begins. The class constructor has 3 arguments:

$csvfile = new CSVFile(recordsetName, [quotes true or false], [filename]);

The first is the MySQL recordset. The second optional argument is true or false to put quotes around the fields. The third optional argument is the filename, which defaults to Download.csv by default.

To use it, follow these instructions:

1. If this is a Cartweaver recordset, make sure you include the application.php file at the top of the page:


2. Include the class file:


3. Create your recordset. Below is a typical Dreamweaver recordset, using the Northwind database that you can download here for MySQL if you don't have it:

mysql_select_db($database_connNorthwind, $connNorthwind);
$query_rs = "SELECT p.ProductID, p.ProductName, p.UnitPrice FROM products p ORDER BY p.ProductID";
$rs = mysql_query($query_limit_rs, $connNorthwind) or die(mysql_error());

For Cartweaver, a typical recordset might look like this:

$query_rs = "SELECT * FROM tbl_orders ORDER BY order_Date";
$rs = $cartweaver->db->executeQuery($query_rs, "rs");

4. Add a line to invoke the CSVFile class:

$csvfile = new CSVFile($rs, true);

5. Link to the file.

Now, when the page is browsed, the file download will begin immediately.

Recent Community MX Articles on ColdFusion, PHP, and ASP

Sat, 06 Oct 2007 13:46:22 GMT

I've been writing more articles for Community MX lately, but have been lax about linking to them. The most recent was on creating text masks for ColdFusion, utilizing a simple technique of replacement fields for things like email texts, letters, or invoices. Last week I had an article showing a simple error handler that I use in PHP applications. Prompted by a question on the Adobe forums, I wrote one on creating a master/detail pageset on one page using Dreamweaver and my own Ajax code. Before that, there was a short series on doing very simple database searches:

This was in response to users who like my Dynamic Search extension, but don't need the keyword functionality. The first part shows how to do a simple search using "filters" in Dreamweaver. The second part (separated for PHP and ColdFusion) shows how to hand-code a few modifications to allow for multiple parameters.

There were also 3 articles on building Horizontal Loopers manually using Dreamweaver tools -- only using CSS instead of tables. Those articles are broken down for ASP, PHP, and ColdFusion as well. The ASP article came out a few weeks ago, at the request of one of my customers:

As always, articles at Community MX are free for members, and a very small fee for non-members. I'm always looking for ideas for new articles, so if there is something you want to see use the contact form to make suggestions. Thanks!

Sys-con, or How Not To Run A Magazine (cfdj)

Mon, 10 Sep 2007 06:05:30 GMT

I'm late to the party, but not too late to pile on: Sys-con has announced the end of ColdFusion Developer's Journal. Others blogging on the subject: Official Sys-Con Announcement Ben Forta's blog Brian Rinaldi's Blog Michael Dinowitz's Blog of Fusion Sean Corfield Ray Camden TJ Downes Simon Horwith Matt Woodward - Post 1 Matt Woodward - Post 2 Oliver Merk Brian Meloche The funniest part of this is the almost universal distaste for Sys-con. Their web site has always been horrible, and they consistently "borrow" content from other places to make up for their own lack of content. They have always treated authors badly, saying that authors are a dime-a-dozen and there is no need to pay them. The web site is the most hideous creation on the Internet. Remember that book "Web Pages that Suck"? The Sys-con site could have filled the entire book. No need to look elsewhere. Brian Meloche said it best: " looks like it was developed by a crystal meth addict." I would add that the addict was probably drunk at the time. I've been to one of their conferences (AJAX World), and while well-run, it was a complete commercial. There were 10 sessions, and only one of them had any type of technical content. I got in for free, but feel ripped off for having taken the time to attend. I think the decision was probably made a long time ago. The URL has already fallen to a link whore...that doesn't happen overnight. If that is true, it's a shame that they didn't feel obligated to tell the editorial staff (see Simon's post). This is funny too...I took a screenshot in case it gets removed, but on many of the sys-con home pages, two of their "borrowed" blogs are blasting sys-con: That's poetic justice. There are still plenty of other places to get CF content. Community MX is still alive and well and delivering some good quality CF content in addition to content relating to all of Adobe's products and other web technologies.[...]

Running on ColdFusion 8

Fri, 24 Aug 2007 03:13:12 GMT

I installed ColdFusion 8 on this server today, and so far have had no problems. Pages definitely feel zippier to me when I browse them. I haven't done any timing tests yet, but I'll take Adobe's word for it that things are much faster in CF 8. Flash Remoting apps seem to be working as well, which is always something I worry about when upgrading. As I'm going on vacation for 8 days, I'm crossing my fingers that everything keeps running smoothly.

New e-commerce blog

Tue, 21 Aug 2007 12:41:20 GMT

Lawrence Cramer has created a new blog for all things related to e-commerce and Cartweaver. I'll be posting over there as well, when I find time, to add to the Cartweaver, PHP, ColdFusion, and e-commerce knowledge base. The address is We implemented my blog software, which also runs this site and CMXTraneous.

SQL hacking on the web

Wed, 08 Aug 2007 00:32:00 GMT

There has been a new rash of SQL injection attacks originating from the far east and other places using the following types of attacks: somevariable=1%20and%201=convert(int,(select%20top%201%20username%20from%20adminusers)) or somevariable=1%20and%201=convert(int,(select%20top%201%20char(97)%2bpassword%20from%20adminusers)) or an attack specific to SQL Server: somevariable=convert(int,(select top 1 table_name from information_schema.tables))--sp_password somevariable=convert(int,(select top 1 table_name from information_schema.tables where table_name not in (dtproperties)))--sp_password somevariable=convert(int,(select top 1 table_name from information_schema.tables where table_name not in (dtproperties,sysconstraints)))--sp_password somevariable=convert(int,(select top 1 table_name from information_schema.tables where table_name not in (dtproperties,sysconstraints,syssegments)))--sp_password somevariable=convert(int,(select top 1 table_name from information_schema.tables where table_name not in (dtproperties,sysconstraints,syssegments)))--sp_password The first problem was an exploit of the user's default error handling page -- if no error handling is in place, the error message might contain the username, password, or other information: Error Executing Database Query. [Macromedia][SQLServer JDBC Driver][SQLServer]Syntax error converting the varchar value 'yourpassword' to a column of data type int.
The error occurred on line 102. In the real attack, the user password was shown on the page. The password was prefaced with the letter "A" -- the char(97) in the attack. This is in case the password started with a number. This can be prevented by using or other device specific to your programming language to make sure integer values are passed as integers. The second problem is that the default web database user has access to tables that should never be accessible to the web. The malicious user was able to obtain table information from information_schema.tables, and work from there, systematically building each time on information that was previously obtained. The best possible scenario is to turn off all table access to the web and only access data through stored procedures. That is not always possible. At the very minimum, only expose the data necessary for the site, and only allow access to statements that are required for operation of the site. For example, if you have a table called "Payments", and this is only available to admins, create two SQL username/password logins and use one for the publicly accessed site and one for the admin section. Turn off all permissions to the "Payments" table for the web user. Create "SELECT" permissions only on tables that only need to have data displayed. As a DBA (which you are if you have a web site with a database and you are the person responsible for the database), you need to know how to secure your data. That involves setting up specific database users for specific access. If a web host gives you a dbo user for a specific database, do not under any circumstance use this username for your web site. This user can be used to create web user logins with specific access. MySQL has similar security features. Access users are out of luck. The other key is never displaying error messages to users. Make sure your error handling page only shows a pretty mes[...]

Lazy summer sale

Wed, 01 Aug 2007 05:00:00 GMT

Is everyone having a lazy summer? I am. After long grueling hours of work all winter and spring, I've tried to cut back a little. It doesn't always happen that way, though. In celebration of a lazy summer, I've put all my extensions on sale for the month of August at 40% off until September 1. Just use the promotional code "lazysummer" when you check out and you'll get 40% off all extension purchases on this site. Extensions

New book on Dreamweaver, PHP, Spry, and more

Tue, 24 Jul 2007 12:00:00 GMT

David Powers has written a new book on Dreamweaver CS3 and PHP -- The Essential Guide to Dreamweaver CS3 with CSS, Ajax, and PHP. I was tech editor on the book so I gave it a thorough reading. David's books are always easy to read and understand by newbies and experienced programmers alike due to his accessible writing style and plain instructions. Included in the book are probably the best instructions anywhere for setting up Apache, PHP, and MySQL, as well as a lot of material about the newest Dreamweaver features. Here is David's announcement:

My latest book, "The Essential Guide to Dreamweaver CS3 with CSS, Ajax, and PHP", has just been published, and is now shipping from (and possibly other places). It's a major rewrite of "Foundation PHP for Dreamweaver 8", and has six chapters devoted to working with Spry, including one that shows you how to combine Spry with PHP to make an accessible online gallery. Roughly 60% of the material in the book is new. For more details, see my site:

I recommend it highly to anyone interested in Dreamweaver and/or PHP.

CFUnited keynote -- ColdFusion 8 looks great

Wed, 27 Jun 2007 18:59:14 GMT

I'm sitting here at CFUnited thinking that I can't wait to get back to the office to install ColdFusion 8. The new tags don't thrill me, as I still haven't used any of the new CF 7 tags, but three things really stand out from Ben Forta's presentation this morning:

  1. Enhanced speed. This is a big one. There were some benchmarks shown of 50% and more increase in many of the basic ColdFusion constructs, such as initiating CFCs (9 times faster, as I remember) and simple things like cfparam, date functions, and regular expression throughput. Since these are things I use all the time, I will be interested in doing some of my own benchmarks.
  2. Multiple CF Administrator logins. This is one of those things that has been asked for every year probably since the first CF version. It's something that should have been in the product from the start, as the current CF7 and earlier installations assume that you are the only person on the server. That is almost never the case.
  3. Debugging. Anyone who knows me knows that I have been harping about lack of debugging in CF for ages, and actually switched a lot of my own development to PHP only because the development environments are more friendly with debugging. I hate having to debug with trace statements and cfdump. It is so 80's.

There are a lot of cool things about CF, but the new CF 8 looks really great and worth the upgrade price. Just the performance enhancements alone are worth it. The public beta is at

Ben Forta talks about the performance enhancements in his blog

TODCON sessions posted

Sat, 16 Jun 2007 19:23:03 GMT

I posted my sessions for the few people who were able to make it to the sessions "Dreamweaver Data and Beyond" and "ColdFusion Custom Tags." The first session showed how to use basic Dreamweaver server behaviors with a little hand-code modifications to make horizontal loopers, multiple updates and inserts, and some other things. The second session was an introduction to custom tags and showed, among other things, the CF custom tag template system I use to drive this site and every other site I build. The concept is identical to ASP.NET master pages. The sessions are posted at

TODCON is always a key event for the Dreamweaver community, despite it's small size. I should say because of -- not despite -- it's small size. Everybody is accessible, and by the end of the conference everybody ends up knowing each other. This year it was even better, as Adobe sent over a dozen representatives to meet with the attendees to gather feedback. They sent some of the top-level people on the Dreamweaver team, including the product manager Kenneth Berger. I got to talk shop for quite a while with Randy Edmunds (formerly from the Drumbeat team) and former Interakt guys Lucian and Christian. I also met and reconnected with some people I've known through the newsgroups and the Dreamweaver community. Being Vegas, there was also gambling, drinking, and eating. I played a bit of poker and went down a little, but didn't get to play very much. Mostly I was preparing presentations and socializing, with a little poolside relaxation mixed in.

I also didn't see a lot of the presentations, but of the ones I saw, the keynote was the most interesting -- showing the cool new features of Photoshop CS3 and Fireworks CS3, which I have not used yet. I was sorry I didn't get to see any of the Flex presentations, but CFUnited at the end of the month will have quite a few of those.

Next year TODCON will likely return to Orlando, but if you have a chance to get to one you really should check it out.

Back from TODCON

Fri, 15 Jun 2007 13:21:30 GMT

I'm back from TODCON, and will have a full report, along with presentation downloads, sometime over the weekend. The conference was great, as they always are. I took the redeye home Wed. night, and went straight to the day job and am now feeling the effects of the brutal 4 days in Vegas.

Leaving for TODCON

Sat, 09 Jun 2007 17:32:21 GMT

I'll be leaving for TODCON tomorrow morning, so if anyone needs to contact me for customer support or any other reason, I may not respond right away.

I'm doing two sessions at TODCON -- "Working with Dreamweaver Data and Beyond" and "Custom Tags in ColdFusion". The first session will show standard DW server behaviors and application objects and show how to modify them to do horizontal looping, multiple inserts and updates, and combination pages that do insert/update/delete. The custom tag session will show an intro to custom tags but also get into an advanced use of using a custom tag as a template for an entire site, which is how this site was built and all other sites I build. I'll show how any design template, such as a Community MX jumpstart, can be adapted using this technique.

If you're coming, I'll see you there. If not, you're missing a great conference.

Last day for special pricing

Mon, 14 May 2007 12:42:45 GMT

The special pricing offer on Cartweaver ends tomorrow. Cartweaver is available in PHP, ColdFusion, and ASP versions for $250 currently. After tomorrow, it goes up to $295 -- still a bargain. :-). Also, upgrades are currently $100 and go up to $150 after tomorrow.

I'll be at both TODCON and CFUnited this year, so if anyone wants to see a demo of CW, see me.

Correction: Pricing for upgrades is $100 until the end of May. More time available. The full price of $295 is now in effect for new users