[Looking for Charlie's main web site?]

Learning resource for beginning web developers

If you know anyone needing to learn the fundamentals of web application development--not CFML, but things like HTML, CSS, Javascript, and so on--here's an interesting resource: Beginner Developer Center, Tier 1

Yes, it's a MS resource: don't let that keep you away

Now, some will see this is from Microsoft and flinch, but don't let that scare you away. It's a set of introductory resources that could help any beginning web developer, and while the first 2 and last 2 of the 14 sections are MS-specific, the rest are not.

And besides the web-oriented topics above (HTML, CSS, Javascript, and more), there are also sections introducing basic programming concepts like problem solving, processing and storing data, even introducing OO (again, with no reference to C# or anything .NET), and more.

For each of the 14 topics, there is both an article-level discussion and either an audio or video version.

Yes, it's in a resource center about VWD. Don't let that scare you away, either

I'll note that beyond being "from MS", it's also indeed specifically part of a resource center for their Visual Web Developer IDE. Again, most of the content offered in this beginner resource is not really specific to that editor or to .NET.

And frankly, I wouldn't hold it against a CF developer to consider using the editor. Hey, it's free, and consider also that sometimes you may have to do some editing on a server with nothing but Notepad available. Perhaps you're not a fan of Eclipse, don't have an available license for DW/HS, and you want more than just Notepad. (Yes, I do also know about the many other available free (and some commercial) editor alternatives. I list them in my CF411 site category of Editors/IDEs.)

(And if you're ever stuck in a situation where you're unwilling or not allowed to install any new editor on your server, just last week I wrote about a tip for using Notepad if you ever find that you can't use the Goto Line feature.)

Anyway, the point is I'm not making a pitch here for VWD nor any statement against CFE. Let's not go there. :-) Indeed, to any who may want to take the chance to comment here in scorn or to deride the VWD editor or MS, or to point out some other editor alternative, let's not go there, either.

The point of this entry is the free learning resources for beginning web developers that I found on the MS site. I hope it may help some people.

Got problems with SQL Server tempdb? Here are some resources

I was working with a client the other day where it turned out they had a HUGE SQL Server tempdb. I shared with them some pretty substantial and informative MS resources. In case this may ever happen to my readers, I wanted to pass them along:

You may want to check out several other equally useful TechNet articles on SQL Server (like the first one above, but available on a wide range of issues).

Hope that's helpful to someone.

Missing the command menus (file, edit, view, etc.) in IE 7? Here's the fix

It's Christmas, and that means...a few hours of tech support working on the computers of relatives you visit for the holidays. :-) One problem I've encountered a few times (even before now) is someone using IE 7 who says, "Why did they remove the menus, like File, Edit, View? How can I change options or call up help?"

Well, the fix is a pretty simple one, but one may miss it. In case any of my readers (or those googling for a solution) need the help, it's that you can right-click on the area where the menu should be (not on a tab, nor in the address bar above it) and you should see a pop-up set of context menu options to include "menu bar", "links", and "status" among other things.

You want to enable the "menu bar"

You'll notice that the "menu bar" option has no check mark next to it. Click on it, to set it, which will enable the menus. The "menu bar" is indeed what shows the File, Edit, View, and other menu commands. Hope that solves the problem for you, and if so, consider it my little Christmas gift to you.

If that option is already checked, then it may instead be that somehow hidden or moved. One tip is that there is also a "lock toolbars" option on the context menu mentioned above. If you de-select that, some of the various menu items will now show a small gray dotted vertical bar, which you can click on to move the particular toolbar. You may find somehow that the menu bar, if enabled but not visible, has somehow been moved or hidden.

Finally, once you have enabled the menu bar, you can use that "lock toolbars" to make it less likely that you or anyone else will cause it to disappear. Hope that helps.

Having problems with SQL Server/Oracle/DB2/Sybase? Check out Confio Ignite

Hey folks, if you're having problems with your CF apps and you determine that (or wonder if) the cause may be due to problems in the database, check out Confio Ignite, a commercial tool that may be well worth the price for you.

Sure, there are many DB monitoring tools out there, but Ignite focuses on tracking, analyzing, reporting, and explaining wait events within the database--and you'd be amazed how often waits caused by your code, that of others, or from other operations in the DB are the explanation for poor performance. It can help target exactly what SQL statement or other operation is a cause of significant waits.

The tool presents the data aggregated over time, so you can view it per hour, day, week, etc. Great for both drilling down to find hot spots, and for viewing how coding/config improvements (resulting from your responding to the analyses) have led to performance improvements over time.

The tool runs with low overhead: it reads data that the DB provides, storing it in a database and providing a web-based interface to view that data. The process to read the data and create the repository (and present the web-based interface) can (and should) be done on a server separate from the server being monitored.

Here's a nice 2-minute demo. There's also a free trial, of course, and it's pretty quick and easy to install and benefit from.

As I noted in the title, it works with SQL Server, Oracle, DB2, or Sybase (sorry, not MySQL. Don't know why). And while it's a commercial product, it's not a ridiculously high price (as for some tools). I just learned of it in the past few weeks, and one customer of mine who tried it has been just thrilled with the results. I hope to write more about it later, but wanted to at least get this info out for folks to consider.

Ever find you can't use "Edit>Go To" in Notepad? Turn off wrapping

Just a quick tip for some readers: if you find yourself using the built-in Windows NotePad editor, you may want to use the Edit>Go To command to jump to a line. But sometimes it's greyed out. What gives?

Turns out it's pretty simple: just turn off wrapping (Format>Word Wrap). Doh! I've missed it for years, so am passing it along.

I know some will want to jump in and say "why are you using NotePad anyway?" Please save the smart remarks (and let's see if someone skips reading this and comments anyway).

I'm well aware of the many alternative text editors, as well as alternative file viewers (two of over 100 categories in my CF411 list).

But there are times when one may find themselves working on a Windows server where perhaps they're not free to install an alternative editor, or perhaps they just need to view/edit one file quickly so don't want to bother.

For those folks, I hope the tip above may help.

Have there been any updates to the CF Report Builder feature? Yes, in fact

I wanted to share here some info I shared on a mailing list. Someone asserted that "there's been little to no attention given by Adobe towards fixing bugs in the Report Builder feature". Well, no doubt many have long ago dismissed it if they used it when it first came out in CF7 and hit some snags.

But to be clear, there have been many improvements made to it in each release/point release and CHFs since then (whether bug fixes, minor improvements, or even some modest ones).

For those interested, just search for "report" in the following documents (to find references to cfreport and report builder):

I do realize that many may think there's still plenty more to be updated, but at least it shows it's not really been "little to no attention". :-)

Not picking a fight with anyone. I really think most just haven't noticed, so thought this may be helpful.

Wanna a new feature/fix in CF? Report it on the CFWISH form...just don't search for it by that name

Update:
Since writing this blog entry in 2008, Adobe has now opened up access to bug tracking for both CF and CFBuilder. So rather than use the old "wish form" below (which still works but does not give you a tracking number), use instead:

CF Bug Tracker (or also at adobe.com/go/cf_bugs)

Besides giving you a tracking number, you can also search these bug bases, as well as vote and comment on bugs offered by others. Finally, if Adobe addresses your bug, you'll be notified by email of that.

Many may know that Adobe has long offered a Feature Request/Bug Report Form form (which came really from Macromedia, and perhaps even Allaire), but for those who don't, I wanted to mention it here, for a couple of reasons.

First, we're on the cusp of a new release (Centaur/CF9), so now's the time to get your ideas in. :-) Second, if you need to find it, you may struggle if you search for it as "cfwish". More on that in a moment.

Of course, another way to get involved in the next release is to apply for the prerelease program (which has its own different bug/feature reporting form). More on that program in a moment, too. And I'll note that while this is a page for reporting features/bugs on all Adobe products (not just CF), it's also not a true bug tracking system (more on that in a moment, too).

Hoping this makes it easier for people to find

First, as for this public form, even those who do know about it may find it hard to find (via searching) when they need it (if they've not bookmarked it).

Part of the problem comes from the fact that the URL for this form includes wishform, and some may then connect that in their mind (as I did) with the term "cfwish". Sadly, a Google search for that won't find a link to the form above; instead it will find references to pages mentioning email addresses that used to be used in the past to submit such requests: cfwish@allaire.com and cfwish@macromedia.com. Those, of course, are no longer useful.

But even a search for "coldfusion feature request" didn't find a link to the form within the first 30 Google results (though a search for "coldfusion bug report" found it first). Until Adobe might put wording on that form to make it be found for these keywords, I'm hoping that perhaps this entry may be picked up to more readily to help people find the form. :-) Of course, you can find links to it from the Adobe site, too.

Hope for an Updated Bug Tracker

Some might say I was remiss in pointing people to that form without recognizing that it's not perfect. There's no real tracking of items: you don't get any sort of tracking number (I'm referring to the public form above, not the beta form), and there's no way to list all items you've submitted. Of course, you also don't get to see the items others have submitted, nor can you vote on them, etc.

The subject of an updated bug tracker has been discussed many times, such as here, and as mentioned in a comment there, Adobe has said that one is coming. Some have noted that Adobe already has a better bug tracking system, at http://bugs.adobe.com/, and it would seem that could be easily opened for CF, but so far, no go.

Consider also registering for the Centaur beta

Of course, if you really want to get involved in forming the next release of CF (Centaur/CF9), note that applications for the prerelease program are now being taken. Again, prerelease programs have yet another feature/request form, as well as discussion forums. That's about all I can say, and I'm hoping no one will mind me saying even that. "What's the first rule about betas? You don't talk about participation in betas."

One last point: I should note that there has for several years been yet another CF bug reporting alternative: http://cfbughunt.org/. Unfortunately, at least as of this writing, it does not seem to have been updated for quite a while.

Some substantial free training on CF, MySQL, Ajax, and much more

I was tooling around the web today and came across something that I think many may find really helpful: free complete (class-length) tutorials on CF, MySQL, SQL (the language), Ajax, and lots more. They're all offered as standalone sites from the training company, Webucator.

Check out the substantial table of contents on each of the following:

The CF tutorial, for instance, has 14 chapters, each with several subtopics, and they range from basics to intermediate concepts. (It does not seem to have been updated for CF 8, but does reference some CF7 topics, like Application.cfc.) For many, it's seems it would be a great resource.

Many other topics

But maybe you know all about the CF topics listed. Fair enough. There are several other similarly substantial topics, listed on the left of each page, after the table of contents for each class. Besides the CF, Ajax, Javascript, CSS, HTML, SQL, Java, and MySQL topics mentioned above, they include PHP, XML, XSLT, web accessibility, and more.

Do note that each class has several sections/pages

While each course is quite complete and has many sections, one bummer is that if one is not paying attention and gets to the bottom of each section/page, they may think that's the end. There's no link there to the next page/section. Instead, you have to notice that offered on the left nav bar back near the top of the page. Just a minor quibble for otherwise free training.

Check them out for yourself

All that said, I haven't actually read through any of them in detail. Still, they're from a training company (which teaches full-length classes on the same topics), and I'm confident that they've worked hard to make the materials accurate. One might wish they offered a place for clear feedback/comments, in case readers might be able to help improve things, but it's their call if they want to manage that sort of effort, of course.

The only real negative (some may feel) is that the "solutions" to various exercises are not offered online. Instead, the link for them indicates that the class materials can be licensed. Of course, the free online courseware is clearly a loss-leader, a promotional effort to bring you to their site to learn more about their many training offers.

Seems a fair trade to me.

FusionReactor 3.0.1 released. Some hidden gems

There's been a recent point-release update (3.0.1) of FusionReactor, the server monitoring and troubleshooting tool for CF 6, 7, 8 (Standard and Enterprise) and other J2EE servers. You can obtain and install the update quite easily (or new installations will get the updated release). While there are available release notes, they're pretty terse in describing the changes. I'd like to elaborate on a couple, from my exploration.

Some of the Improvements

Here are some hidden gems among the improvements.

  • Support for 64-bit CF and JVM -
    Pretty self-explanatory
  • Reports if you have any URLs set to be ignored
    I'd asked for this feature. You will now see an indication in the Running Requests, Request History, and some other pages when you have set any requests to be ignored by FusionReactor "restrictions". This deserves some explanation.

    This is referring to a setting made in the final menu option in the FR interface, labeled simply FusionReactor. It's an option (that many miss, I think) called "Restrictions" which can be used to prevent some URLs (exact match or regular expression) from being monitored at all by FR. This is not to be confused with the similar Crash Protection restrictions feature, which can prevent some pages from being tracked for CP. This other setting is more global, controlling whether they're monitored by FR at all.

    I felt that users might not realize that they (or someone else) may have marked some URLs to be ignored by this FR Restrictions feature. The Intergral folks kindly responded by adding this improvement, which just adds some text to the bottom of the affected pages where URLs would be shown, to indicate that some may not be shown since the "restrictions" feature had been used. It does not appear if there are no restrictions enabled, of course.
  • Can re-run installer to add FR into additional instances/servers
    This is a nifty enhancement, especially for those running FR Standard. The FR installer normally offers to install only into one installation of CF (or other supported J2EE servers) on your machine. If you wanted to install it into another CF installation (perhaps 7 and 8, or one of multiple instances) or another supported CFML or J2EE server after installing into the first, in FR Standard you previously had to add it manually (With FR Enterprise, you could have used its available Instance Manager feature.)

    Now with FR 3.0.1, you can re-run the FR installer and there will be an option offering to install it into a newly selected instance (meaning another CF deployment or other CFML or J2EE server) on this machine.

    (I'm being careful not to call them CF "instances", since that could be read to mean an instance in the Multiserver mode of CF. FR supports those, but when it says "instance" it means either one of those or a Standalone/Server deployment of CF, or any other supported CFML or J2EE server.)
  • New URL params for redirected CP URLs -
    If you choose to have users redirected to a new URL (if their page is aborted or queued too long by FR crash protection), you can optionally have that new URL include URL parms that describe what went wrong to trigger the redirection.

    In addition to the current detection_method, threshold_value, and actual_value, there are 4 new values included on the URL: source_url, source_url_params, source_method and start_time. For more on all of these, see the online help for the CP Settings page.
  • Port checker on the installer -
    When newly adding FR into an instance, you're prompted to choose a port for FR's built-in web server to use for you to access the interface. It now checks and reports if the port selected is already in use.
  • socketWrite0 protection -
    This is an experimental (and optionally enabled) new feature, which deserves its own discussion as a separate entry which I hope to offer in coming days.

Again, this is just some of the improvements. To see a list of all them (and bug fixes), see the release notes.

Take care in reading about the items

As I said at the opening, the list of items in the release notes is pretty terse. They're basically just a few words per change. I'll suggest you be careful in reading them, though.

As if often the case in bug fix lists (though these are more), they appear to really be the brief description of each change as was entered by the developers in a source control system. The bummer in then using these for release notes (as Adobe has sometimes, too) is that the wording could be misconstrued.

For example, one improvement says, "When a server has an expired licesne [sic] and the server is selected within the ED a runtime error is thrown". Ignoring the typo, this reads as if it's an improvement that an error is thrown. Instead, this is saying that the problem is fixed, really. And the "ED" means Enterprise Dashboard. So just keep this in mind while reading the release notes.

It's understandable that some may think that a release notes list of enhancements doesn't need much more. Sometimes the CF release notes are equally terse or unclear. Hey, they have people like us who will blog clarifications. :-)

But I'll also point out that the FR folks are great about support, so post any questions to the FusionReactor mailing list (http://groups.google.com/group/fusionreactor) and not only will you get an answer, but other users will benefit. (Or feel free to drop any comments/observations here, too.)

How to determine your current client storage value

This may be a surprise to some: it was to me. I learned today for the first time that it's possible to find out (in code) for a given CFML app what client storage repository it's using:

<cfdump var="#Client.getPersistSettings().get("clientstorage")#">

Thanks go to Paul Kenney, as I found it in a page of his while I was doing a google search for some related info.

Why is this interesting?

I'm sure some may be wondering what the excitement is. Can't you easily tell what client storage repository a given app is using by looking at the ClientStorage attribute (of CFApplication when using application.cfm), or as a property in application.cfc? Sure.

But sometimes you may be left wondering how to view that value programmatically. Maybe you can't open those files (ok, that's a stretch), or maybe they include or invoke other application files, and trying to track those down is a hassle.

Also, one might not set the value in ClientStorage, in which case CF takes the default from the CF Admin, but a developer may not have access to the CF Admin, so can't know which repository they're really using.

How I found it, why I was looking

This came up when someone raised a problem on the Adobe Forums, where they said that several apps using a given clientstorage DSN worked, while one using it failed (all on the same server). I thought that odd, and wondered if the others may not really be using the DSN he thinks they are.

So I set off to find an answer. I hoped it might be in the servicefactory clientscopeservice, but it was not, in any of its available methods. While looking for possible examples of folks using that in ways I had not thought to, I found Paul's page above. What's nice about it is that it DOES NOT rely on the ServiceFactory, which of course is undocumented and unsupported (and can be disabled).

Some other thoughts about this getPersistSettings approach

This getPersistSettings approach above is just an undocumented method in the regular client scope: you won't see the value or this method being exposed in a simple dump of the client scope. But at least (unlike the servicefactory) it can't be disabled.

And I've tested it in CF7 and 8, and it worked fine.

Of course, if you're going to run this to help someone determine what storage they're using, you need to run it in the directory of whatever app you're trying to check. Be careful about mistakenly running it in some test directory outside of the app's directory.

And don't bother looking for other properties to "get". The only key in the structure that's returned by getPersistSettings is this one.

That said, it would be nice if it might also identify info about the client variable storage repository, such as how many days at which it's set to purge expired visitors, and whether "disable global variable updates" is enabled or not. You can get that info using the undocumented ClientScopeService in the ServiceFactory (just do some googling for info on it, and its available getclientstores method.) But it would be nice to have this info using the method above.

In fact, I've filed a feature request to get even this current clientstorage setting (and the info about the storage repository) available in a more direct and supported manner.

In the meantime, hope this may help some.

More Entries

Copyright ©2018 Charlie Arehart
Carehart Logo
BlogCFC was created by Raymond Camden. This blog is running version 5.005.
(Want to validate the html in this page?)

Managed Hosting Services provided by
Managed Dedicated Hosting