Select a link to jump straight to the section...
BBEdit and Source Formatting
If you use BBedit (an excellent Mac only text editor), you can use DreamWeaver's HTML formatting configuration file as BBEdits reformatting definition as well.
The text editor of a developer's dream.
Got BBedit yet? If you spend a lot of time editing text, this can become your best friend in a hurry. BBedit is without doubt one of the finest pieces of software a developer could wish for.
Cold Fusion and the Macintosh
Are you a Mac user? Write Cold Fusion? Consider this excellent combination: BareBones's BBEdit and Stairway's Interarchy.
Free Cold Fusion Tags, Apps and Source!
Looking for free Cold Fusion tags, applications and their source? Download them right here
Functions in Cold Fusion
Using a custom tag, you can pass variables to it via it's attributes, and have it return the result via the 'Caller' scope. Very much like a traditional function.
Grouping by date & MS Access
I wanted to group some articles by publication date. Easy: group by date, right? When using MS Access, the field type is date/time. If one use's Access's Now() function as the default for the field, every record will be different, because they will all be inserted at different times, defeating the ability to group by date. The solution is to insert an ODBC date programmatically. If no time is specified, access will still include a time, but will default to 00:00:00
Mac MSIE Variable bug
The Mac version of Microsoft Explorer 4.x has a bug where it will append a space to a form variable. When one clicks on a submit button whose value, for example, may be 'Submit!', MSIE will actually send 'Submit![space]'. This will frequently cause problems all over an app. The solution, when comparing a form variable to be used as a trigger is to ensure that one uses Trim() when comparing the value.
Organizing your applications
Concerned with keeping your code organized, easy to move and implement? Check out the FuseBox methodology at FuseBox.org
Searching with Verity or SQL?
Searching your database: Which to use? Verity is best at handling large chunks of unstructured text. It automatically handles stemming (love, loved, loves, loving, lover) and is best at handling 'natural language' ('Who loves me?') type queries.
SQL is best of finding precise matches in very structured information (like prices). Verity can, however give you somewhat mushy results. Why not search the return of your verity query with SQL?
The Pro side: Very accurate results with good control over your data. The Con side: You lose relevance ranking, and must resort to using ORDER BY.
Using Verity to Search your Database
So you can search your database, and you've created a simple search engine that hits on keywords using SQL. You CAN search your database using the Verity engine. Verity itself will not search a database, but it will search an SQL query. Neat idea, huh?
Verity and SQL Searches: Redundancy
Using the Verity engine to search your big note fields? What happens if the collection isn't there, or gets destroyed? Why not back it up with an SQL search? By using <cfcatch> and <cftry> you can make it so that if there verity search chokes, that there's a redundant search mechnism that takes only minutes to implement. If you're using <cftry>, make it so that your app mails you about the error. In the mean time, your client and the user were served, and you don't have to get up at 4 am to deal with it.
Redundancy often pays off, and is cheap to implement.
HTML and Structure
HTML is about describing the structure of a document, not it's appearance. The net purpose of an HTML document is to transmit information. How well does your site fare? Try the following tests:
Go to http://validator.w3.org/ and enter the URL of your most important pages.
Alternately, you can view your site though the Unix utility Lynx. At your command line, simply type in
Lynx [your URL]
How did you fare?
Latency and download speeds
Often times I see sites with a million small images for a nav bar. I often prefer to use fewer but larger images. While an image map, or a larger images may be heavier in k, there is far less latency; the browser may have to download 10 k instead of 8k, but it only needs to send a request to the server once, as opposed to once per 1k image. Try it, quite often, you can speed up the download by many factors. You'll probably find that the browser renders it faster too.
Get some sleep! The brain (believe it or not) works better that way.
Caffein is *not* a substitute for sleep!
Developers: Here is one of the finer lists you can belong to: http://www.evolt.org. Evolt consists of a great many very bright, helpful and kind individuals specializing in almost every aspect of the web development community.
Show your stuff!
Are you a software developer? Why not consider looking through some of your older work for something that may be useful to a novice. By giving away what you have, you are also exposing what you know, giving newbies a chance to learn. Who knows, your act of kindness may one day feed a family.
BBedit and Cold Fusion (Glossary)
Do you prefer to develop Cold Fusion apps on the Mac? Have you already discovered BareBone's BBEdit? Here's a glossary that might make your life easier. It contains all the tags and functions found in CF 4.5
Finding your path.
When including one file into another, relative paths often break. cf_GetPath will return a relative path, based on the location of the included file, instead of the parent file. Check it out! It's free!
Are you looking for examples of my past work? Look here!
Get the web server root.
A great way to figure out the path to the root of the web server on the PC (the root of the account on *nix) is to use cf_GetPath. Download it. It's free.
Got a tip?
Got a cool BBEdit, or Cold Fusion tip you would like to share? Send me a note, and I'll include it here.
Looking for a simple way to manage images for a single record? Try cf_ImageUpload. It's free.
Reach Out and Touch Me.
Contacting me is always easy! Simply use the ever-so-easy to complete form! Alternately, I'm always available at [email protected]