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.
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.
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.
Mon, 14 Feb 2011 11:00:00 GMTI 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 build.properties and build.xml files to this directory. My build.properties file looks like this: #deploy to LOCAL server deploy.dir.local=c:/inetpub/wwwroot/mysite #deploy to DEV server deploy.dev.ftp.host=myftpsite.com deploy.dev.ftp.username=myusername deploy.dev.ftp.password=mypassword deploy.dev.ftp.basedir=/ #deploy to LIVE server deploy.live.ftp.host=myliveftpsite.com deploy.live.ftp.username=myusername deploy.live.ftp.password=mypassword deploy.live.ftp.basedir=/ 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:
Thu, 10 Feb 2011 00:16:41 GMTI'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 http://www.mssqltips.com/tip.asp?tip=1174 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.
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.
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.
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:
Tue, 27 May 2008 23:13:36 GMT
Adobe has released the latest version of Dreamweaver to public beta at http://labs.adobe.com/technologies/dreamweavercs4/. 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.
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.
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.
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: http://www.communitymx.com/author.cfm?cid=1003
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.
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 cartweaver.com:
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.
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.
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:
$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.
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!
Mon, 10 Sep 2007 06:05:30 GMTI'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: "Sys-con.com 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 cfdj.com 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.[...]
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.
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 http://blog.cartweaver.com. We implemented my blog software, which also runs this site and CMXTraneous.
Wed, 08 Aug 2007 00:32:00 GMTThere 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.
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
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 Amazon.com (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.
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:
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 labs.adobe.com
Ben Forta talks about the performance enhancements in his blog
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 http://www.tom-muck.com/sessions/.
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.
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.
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.
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.
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