[Looking for Charlie's main web site?]

CF 8 Hidden Gem: Incredible Info from the Server Monitor, with Zero Overhead

Note: This blog post is from 2007. Some content may be outdated--though not necessarily. Same with links and subsequent comments from myself or others. Corrections are welcome, in the comments. And I may revise the content as necessary.
OK, I'm playing a little trick here, and it's the first time I've ever felt the need to do it in 5 years of blogging (or 10, depending on how you count it). Anyway, I don't have any new content here.

It's just that I just noticed that the traffic for my 2nd blog entry on server monitoring was much lower than the first, yet it was posted about the time--and is just as important, if not more so for most people, than the first. So I've used a different title here to try to catch your attention. Looks like it worked! :-)

Please do go read the other, if you have still not. And let me know what you think, if you did. I'd also like folks to confirm what I'm seeing, as it seems almost too good to be true.

What's in a title? Everything, it seems

I can't help but fear that the title I used, "CF 8 Hidden Gem: Using the Server Monitor even without "starting" any collection...yes, TANSTAAFL", just confused people. "What's he mean by a collection?" And "TANSTAAFL"?

Actually, I wanted to say "Using the Server Monitor even without 'starting monitoring'", but obviously that would have been confusing, too. Indeed, I allude to this in the entry, about how the feature called "start monitoring" can lead people to think that the monitor doesn't do anything until you at least enable that. Not true, and that was the point of the entry! There's some amazing stuff "with zero overhead".

(Perhaps I also lost people with my play on the acronym, TANSTAAFL ("there ain't no such thing as a free lunch"), where I was referring to how there IS a "free lunch" here. Serves me right for being tricky. Again, I was scrambling to come up with a title because of the "start monitoring" challenge.)

Don't miss the features--truly hidden gems!

Anyway, the point is that if you're interested in the new CF 8 Server Monitor, whether for production user or not, you really ought to check out what I pointed out. I do think you'll be amazed.

Drop your comments on it over there, please. Not here. Don't want to create any further confusion! In fact, I'll disable comments on this one (another first).

CF 8 Hidden Gem: Using the Server Monitor even without pressing "start" buttons...yes, "free lunch"

Note: This blog post is from 2007. Some content may be outdated--though not necessarily. Same with links and subsequent comments from myself or others. Corrections are welcome, in the comments. And I may revise the content as necessary.
In my previous entry, I explained how different features of the CF8 monitor have different levels of overhead. I also pointed out that there was value even if you didn't enable any of the features at all. I can't stress that point enough. So yes, there "is" such a thing as a free lunch.

Some Cool Info: at ZERO COST

Even without pressing the buttons to start "monitoring", "profiling", or "memory tracking", you can see:

  • how many pages are having errors, and details on each
  • jvm memory used, and a detailed graph
  • template cache status (how many pages, and total size of the cache), graphed over time
  • query cache status (yep, the cached query count and total size)
  • and more

Big deal, I may hear some say. Well, it is a big deal. That template cache and query cache status info is gold, and something that many of us have long lamented to have. Talk about opening up the black box. And with no overhead.

But wait (to quote the old Ginzu knives commercials from the 80's), there's more! And I mean, seriously cool info--again at zero cost.

Some Amazing Info! Again, at ZERO COST

Even without enabling ANY of the three buttons, you'll still be able to see all this really cool new info:
  • active sessions (yes, a list of all sessions currently active, and if you click on each, the session variables and values currently assigned!)
  • application scope memory usage (yes, as above!)
  • server scope memory usage (yes, as above!)
  • and more

All I can say is "wow". That is just so cool to get that, for free.

Don't we need to enable "memory tracking"?

I'm sure some are asking, "Well, isn't that what the 'start memory tracking' would be about?" Apparently not!

The help page for the monitor (the ? at its top right) describes the memory tracker as reporting "the queries and sessions that have used the most memory... and profiling information on the largest variables on the Requests by Memory Usage report". I'm willing to do without those in exchange for the info above, most of the time.

Now, on the other hand, the ellipses in my quote above (the "...") refers to where it also said the memory tracker provides "the memory usage of all application and server scopes". Hmm. Well, I'm seeing that without enabling it. Or maybe it's referring to some other aspect of the reports. There are indeed many reports in the monitor which had no data if none of the "start" buttons were enabled.

So what, then is the "start monitoring"?

As for the "start monitoring", according to the help it provides info on "active requests, slowest requests, active sessions, cumulative server usage, highest hit counts, template cache status, request throttle data, requests that timed out, requests with errors, and server alerts." Again, I'm not so sure about that. I'm seeing a few of those without using that feature.

I'll leave it to you to read what the "start profiling" says it enables.

I do think an argument could be made that the "start monitoring" button probably may contribute to confusion. I'm sure some will try to convey what I've written and talk about what you can get from "the monitor", and some will assume it's tied to enabling that button, when clearly it isn't. Maybe it could be called something else. Probably too late for that.

Joy in Mudville

So if you hear someone say, "we won't use the monitor in production", slap them roundly on the cheek...I mean, point them to this blog entry (and the last one). Seriously, it's tragic if someone would miss out on the value of the monitor simply because of an overinflated sense of fear.

But do have them check for any comments below, too. Maybe someone will correct me. Maybe my setup is somehow unique, but I've run many tests without these other features on and observed in real time the display of all the above.(And I have not had the "start" features enabled since I installed the RC a week ago, though I did have them enabled in previous betas. I can't believe that's having an impact.)

Finally, I'll point out that even if you don't want to (or can't for some reason) use the Server Monitor interface, you can get all the same information by way of the Admin API, and a new servermonitoring.cfc. Ray Camden's done a blog entry on it. Indeed he makes a similar observation about how he was able to get some of the methods to return data even if the docs said that a particular monitor feature must be enabled.

Check it out for yourself, and feel free to report here your corrections, or your delight. Hope that's helpful.

CF Server Monitor: what's the impact on production? you may be surprised

Note: This blog post is from 2007. Some content may be outdated--though not necessarily. Same with links and subsequent comments from myself or others. Corrections are welcome, in the comments. And I may revise the content as necessary.
The CF Enterprise Server monitor is more powerful than many may realize, yet naturally some are immediately concerned about its potential overhead, especially if they're considering running it in production. Things aren't quite as obvious as they may seem, or as many may assert.

Update: I've updated this entry now 5 years later, in 2012, to give a bit more context to what I said originally. No change in the message, just a little more info and perspective. (There's also no change in the impact of it, pro or con, in CF 9 or 10.)

First, it's indeed true that depending on what you enable, it *could* be very resource-intensive and could even bring down a server under load. But conversely it also can have ZERO impact--yes, even in production. I'll discuss that in my next entry.

But before that, I just want to take a moment and explain the key 3 features that control what impact, if any, it will have.

Note that there are three buttons at the top of the monitoring page which "start" different monitoring features. (If you don't see these buttons, just refresh the browser again to get them to appear.)

So what are the implications of starting each of the optional monitoring features?

  • start memory tracking: this has the highest potential impact for overhead, which can be very substantial, even to the point of crashing your instance. And even on a low-traffic developer machine, you might see a big hit from running this. More on this in a moment.
  • start profiling: this has much less overhead. It primarily enables tracking of database activity. The help page for the monitor calls its overhead "minimal", but I will note that on a CF server with tremendous DB activity, its overhead could be more substantial.
  • start monitoring: This is the least impactful button. It's needed to at least see running requests, as well as to have Alerts fire. But even on a busy server I've rarely seen it have a negative impact. That said, you don't need ANY of the 3 buttons enabled to see at least some info. More below.

Definitely check out that help page (from the front page of the monitor) or discussions in my 4-part series of articles on the monitor to learn more about what each button does as well as more about the monitor itself and its many features.

About the Memory Tracking feature

You'll note that I hedged above on the impact of the Memory Tracking. Conventional wisdom is that it is indeed a potential server killer, and I can confirm that I've seen it many times in my CF server troubleshooting consulting practice. But I can also report that I've seen it running on production machines and having virtually no seeming impact. I kid you not.

I suspect it has to do with how many objects are in memory, how complex they are, how busy the server is, etc.

Now, some might propose that you use it only for brief periods (minutes, seconds) to gather some info for analysis, perhaps only in emergency. (I even said this in my initial version of this blog entry.) But many have found that things go horribly wrong on some CF instances the moment it's enabled. So it's probably best not to use it at all on live prod server.

You might be able to do it in a test/dev server, and you may get value form that in looking at the impact at least of individual or small numbers of requests. But beware also that some problems simply don't present themselves except under load (and often only in production, not even with load testing), so using it in dev/test may not help spot/understand/resolve all problems.

So does that mean there's no value if you can't use this feature in prod? Well, no. Remember, this is one of 3 buttons. The other two have less overhead (especially "start monitoring"). More than that, you can get value from the monitor with NONE of the buttons turned on.

Any value if none turned on?

Yes, don't miss this vital point: there is value to using the monitor even with none of the start buttons enabled. That is deserves its own entry. Who says there's no such thing as a free lunch? :-)

So if you hear someone say "don't use the monitor in production", please make sure they're clear on all this. There are 3 features you can enable, or none at all, and each provides different info at different costs--some of it zero.

Postscript: The buttons stay enabled after closing the monitor, and even over restart

I know I've discussed this elsewhere, but while I'm updating this entry let me reiterate the point: it's vital that you understand that if you turn on any of these buttons, they STAY TURNED ON, even if you close the monitor. And EVEN IF YOU RESTART CF. In fact, this is important enough to deserve its own entry. I'll post that now (as I update this in 2012), CF911: Using the #ColdFusion Server Monitor? Be aware that the "Start" buttons remain enabled.

CF 8 Hidden Gem: new Sleep() function to pause a current request

Note: This blog post is from 2007. Some content may be outdated--though not necessarily. Same with links and subsequent comments from myself or others. Corrections are welcome, in the comments. And I may revise the content as necessary.
Ever wanted to pause a currently running request? You can now, in CF8, using the new sleep() function. CF8's chock full of hidden gems. Indeed, I make note of nearly 50 of them in a user group talk I've started doing. One of them is this new Sleep() function.

Some will recognize it as an easier way to call the java thread.sleep method (as many have noted, and I wrote about back in 2002). It's been added primarily as part of the multi-threaded processing (CFTHREAD) feature, such as when one thread needs to wait upon another.

But it can be useful sometimes on its own, such as when you want to simulate a long-running request for any reason. (And it's a whole lot more server-friendly than doing a huge cfloop, since a sleep call doesn't really spin the CPU. It literally halts the current request, putting it to "sleep".)

As with the sleep method in java, sleep() takes a number in milliseconds, so for 5 seconds, use 5000. You can use it in CFSCRIPT, or in a simple CFSET:

<cfset sleep(5000)>

Why might you want to simulate a long-running request? There are many reasons. Perhaps to test some logic in how CFLOCK failures work, or to cause a page to appear in the new CF8 server monitor--or one of the long-existing monitor tools (to make sure you're seeing what you think you should be seeing).

Still another reason to use it has to do with another hidden gem, this one in CF7. I'll write about that shortly.

Recording your next user group meeting (and finding the recording)

Note: This blog post is from 2007. Some content may be outdated--though not necessarily. Same with links and subsequent comments from myself or others. Corrections are welcome, in the comments. And I may revise the content as necessary.
If you're a user group manager who is taking advantage of the free Acrobat Connect account from Adobe for user groups, the next challenge for you may be how to make and use recordings of your meetings. I find that many managers have just never done this, and it can be so valuable, especially since you can then list the recording for your members and indeed for the entire community on my UGTV site. More on this later.

Making a recording of your meeting

Fortunately, it's very easy to record your meeting. It doesn't matter if you'll be having any remote attendees. Indeed, it doesn't matter if you'll be having a remote speaker. As long as you have an internet connection, you can record whatever a speaker says and shows. Everything you see and hear will be captured and can be played back in perfect fidelity.

While you're in a Connect meeting (as a host, discussed in the earlier blog entry), simply hit the Meeting>Record Meeting option in the top menu bar. You'll be prompted for a name and description. Don't worry too much about getting this perfect at that point, since I'll show how you can easily edit the information later. (You don't even need a description, and since the recording will be timestamped, you don't even need to worry about creating a unique name, if you'll be editing it soon after the meeting--so you don't forget which recording is which.)

Tip: As a word of advice, I'd recommend you be prepared to start your meeting right after you hit the record button. The recording will indeed start immediately, and I've heard too many recordings where the host and/or presenter are fumbling around getting things situated while the "tape" is rolling. Please be considerate of those who will listen to your recording later.

They don't want to have to wait--and there's no easy means to know how long such preliminaries will go on. Advancing the playhead in the playback mechanism isn't as precise as it could be, either, so the listener won't be able to easily skip ahead. This is an easy mistake in the moment. You figure everyone else in the room is waiting patiently while you get started. But it's quite annoyance at the start of a recording.

An update: Yes, as I'll discuss later, you can now with later versions of Connect go back and edit the recording, but you probably won't bother, so just keep this in mind.

When you're done, you simply hit the Meeting>Record Meeting menu option again, or the red "recording" icon/dot in the top right of the Connect interface (which tells you you're recording).

Note that there is no "pause" feature. If you stop it, you're stopping that recording and would need to start a new one. If you're having multiple talks during a meeting, it may be best anyway to create a separate recording for each.

Here's another tip: you can use the ease of creating recordings to create a quick one before the start of the meeting to test how you and your presenter sound. Sometimes, you can't judge by what you hear, if you've got bad bandwidth temporarily. You can create a quick recording, go listen to it, then delete it. I'll show how to find the recordings next.

Finding the Recording URL

OK, so you've made your recording. Now, how do you find it? I hear this lament from user group managers all the time. In fact, it was 2 such pleas for help that I saw today which sparked me to create this entry (been meaning to for some time).

You get to the recordings not through the Connect interface but instead through the same interface you use to create the meeting. (Each Connect account may have a different URL, and of course you need a valid login/password, so I can't tell you how to get in. If someone else setup the meeting, you need to contact them, or your Connect administrator, to get that info.)

On the Admin page, click the "Meetings" link on the top of the page. That will show all your current meetings. (You can also use "my scheduled meetings", but it's a slightly different presentation of meetings list.) Select your desired meeting (the one where you made the recording--as you may see several listed).

You will then see several links, one of which will be "Recordings". That's where the recordings (if any) for that meeting will be listed. Click that.

Now you can click on a recording (that name you gave when you started the recording). That will show you the URL for the recording ("URL for viewing"). You can click the link right there to have it open and start playing the recording. You'll want to make sure it sounds and looks good. If not, just take notes to do things better next time. You can't edit the recordings in any way. An Update: note that you can now edit your recordings, such as to remove deadspace at the beginning or in the middle, or if a speaker loses connectivity for a time, etc. You do such edits from a button on the same manager pages being discussed here.

Tip: Here's another reason to view the recording while you're at this point. If the recording prompts for a username/password, you can alter it to not require that. Indeed, you can also make a slight modification to be able to track how many times the recording is viewed. I cover both in another blog entry, "Webcast: How to track views of your Breeze/Acrobat Connect recorded presentations".

Finally, while you're viewing the recording information (whether before or after you move it as discussed in the above-named entry), you will also see an option called "Edit", where you can rename it or add/edit the description. You can change this any time, even after people have started viewing the recording. The URL of the recording won't (and can't) be changed if you edit this information.

Tell the world about your recording

Now that you have the recording URL, you'll certainly want to blog it, and tell the presenter also, as s/he may also blog about it. (Again, be sure to have tested it first to make sure users aren't prompted for a username/password.)

Finally, don't forget to post it on the repository of recorded user group presentations, UGTV. Yep, that's a section of my site, but it's for anyone to post recordings to. Indeed, if you find a recording and don't see it listed, you can add it, whether you're the author or not. (If a recording is listed publicly, I can see no reason the author wouldn't want it listed in the UGTV list.) For more on the UGTV, see the UGTV category at right.

Hope that helps. Let me know if I forgot anything, or if it helps you. Feedback is always welcome.

User Group Managers, Unite

Note: This blog post is from 2007. Some content may be outdated--though not necessarily. Same with links and subsequent comments from myself or others. Corrections are welcome, in the comments. And I may revise the content as necessary.
If you run a ColdFusion user group (or indeed, any Adobe user group), you should know that there are a couple of manager meetings taking place.

The first is a 2-hour meeting, online, during the Adobe Community Summit. I can't share details of that one, but I can say that if you're a UGM and therefore are on the Adobe UGM forum, you can find the details there.

The second is a live, day-long event being held at CFUnited. You can learn more about that at http://ugmm.cfunited.com/2007/. There you'll find the schedule, speakers, topics, and registration. At just $29, it's a bargain for a day-long event, and with the range of speakers and topics, it should be great value.

I spoke at the event last year, but sadly can't attend this year because of my day-long class being held the same day. There is a copy of my presentation, where I pointed to dozens of free resources for UGMS, in the Community Portal (again, UGMs are authorized to access that and can find out more in the UGM forum.)

As for that day-long class, if you're not a UGM and will be at the conference on Tuesday--or want to come early--there are still slots open for my class. I know the topic may surprise some, but there are many who will be shocked to learn of the hundreds of little--and big--changes that were introduced in CF 6, 6.1, 7, and their updaters. It'll take a whole day to cover them--and that's at a rapid pace!)

CF "U-see-Charlie" -- My speaking schedule at CFUnited, and a little CFUnited history

Note: This blog post is from 2007. Some content may be outdated--though not necessarily. Same with links and subsequent comments from myself or others. Corrections are welcome, in the comments. And I may revise the content as necessary.
I'm delighted to be speaking again (for the 9th year) at CFUnited, and I list below the 7 times I'll be speaking: 1 bootcamp session, 1 Scorpio session (repeated Sat.), 1 vendor session (for Intergral), a daylong class the day before, speaking at the Minimax event Tues. evening, and co-leading a BOF.

A Couple Tidbits of CFUnited History

Before that, though, I thought I'd share a couple points of history about the conference. Did you know it started back in 1999, as the DCCFUC. Back then it was a single day, single-track conference (though still with hundreds in attendance) held at the NIH auditorium in Bethesda--which I remember pointing out happened to be right across the street from the hospital where I was born, and the hall where my parent's had their wedding reception. :-)

You can get a sense of what it was like from reports about the 2000 event. The one by Eva Holtsmark happens to have a photo of the auditorium. Yep, that's me at the front of the room. :-)

It was at the 2000 conference when it was renamed to CFUN, and then in 2005 it became CFUnited. You can read more about the past events (and indeed all past CF-oriented conferences) at the nifty CFCONF site that Teratech has long run.

I'm pretty sure I'm the only person other than Michael Smith (the organizer) who's been at each of the 9 events, and it's been just a delight to watch how it's grown and evolved. Great job, Michael and company.

My Presentation Schedule

Now, as for my presentations, here they are:

  1. Tues: Daylong class, "New in CFMX 6/7, what did you miss?" (you may be amazed at what you've missed)
  2. Tues eve.: Minimax talk, "Hidden Gems in Scorpio"
  3. Wed 8:00p: Birds of a Feather session, "Solo Coding" (co-leading)
  4. Thurs 3:15: Bootcamp session, "Introducing the CF Admin"
  5. Fri 8:30a: Scorpio session, "Step Debugging in CF 6/7/8 with FusionDebug or the new Scorpio"
  6. Fri 12: Vendor presentation, "FusionReactor and FusionDebug - Professional Monitoring and Debugging tools for CF 6,7 and 8!"
  7. Sat 8:30a: Repeat, "Step Debugging in CF 6/7/8 with FusionDebug or the new Scorpio"

Who's hat am I wearing?

You may notice that I'm doing one of the Adobe Scorpio slots. I was really tickled by that invitation. Yet I'm also speaking in a vendor slot for Intergral. Who am I working for? I work for myself. I'm an independent consultant now.

I'd like to clarify that the debugging talk was originally on FusionDebug alone, but once the Scorpio debugger was announced, I was asked by Adobe if I'd like to speak on it. I explained I already had the FD talk on the schedule, but I could change it to cover both. That benefits both audiences: those who don't move to CF8 soon can still benefit from learning about FD (since it runs on 6, 7, and 8).

And Intergral had asked if I'd like to speak (along with others from their company) about their coming updates to FusionDebug and FusionReactor. Of course, I'm happy to. They're great guys. And Adobe understands, too. They recognize that there is still a place for third-party tools, even if Scorpio may take some of their market away.

I've talked previously about why I don't think it's a bad thing for the vendors, including Webapper's SeeFusion.

I don't mind playing "Switzerland" among the various tools. Those who know me know that I've always just wanted to help folks learn about all the different tools available to solve a problem--yes, even including my days evangelizing BlueDragon.

And in case you hadn't heard, I left New Atlanta 15 months ago. I'm amazed how many people "didn't get the memo"! I still have some BD clients, but clearly I'm back to supporting the entire CFML community, and indeed I'm doing a lot of work with Adobe (more on that soon).

Finally, on hearing of my 7 sessions, someone quipped that I must be "the hardest working man at CFUnited", but that appellation really much goes instead to Michael, or indeed to Liz Frederick, who coordinates the whole thing. Thanks again to them and all the TeraTech employees and volunteers for their hard work and dedication to this annual event. Hope you'll come on out.

PS If you've not yet started filling out your schedule, note that there is an online scheduler. It's gotten a lot of praises for its usability. Note that some of the sessions (one particular room) will require pre-registration.

Got something to show the CF community? Come present to the Online CF Meetup

Note: This blog post is from 2007. Some content may be outdated--though not necessarily. Same with links and subsequent comments from myself or others. Corrections are welcome, in the comments. And I may revise the content as necessary.
If you're a developer, speaker, or vendor with something you want to share with the CF community, or know someone who does, here's a chance to reach thousands of folks. The Online ColdFusion Meetup wants you!

I explained previously the rekindling of the Meetup, which is an official, online Adobe ColdFusion user group.

The group serves a couple of audiences. Obviously, for those who don't have a local user group, it's a vital link to the community. Beyond that, though, anyone may join and participate, so it really serves the worldwide CF community. The group grew to 900 members during Steven's time, and now it's up to 1,100 over 1,200 members (update as of Oct 2007). We've had several successful meetings the past several weeks.

Meetings are typically 30-60 minutes long, just like a real user group meeting, as driven by the speaker's topic. People join in to listen (voice over IP) and optionally interact with the speaker via a chat window (we use an Acrobat Connect account that Adobe graciously grants to user groups). There are typically about 20-40 folks online during most of our sessions

Better still, we record all the meetings (again, with Adobe's generously hosting the recordings), so your message gets shared potentially to the entire CF community. I list all the recordings, along with over a hundred other user group talks, at my UGTV site. Folks typically blog about the sessions as well, all of which help further spread whatever news or tips you have to share.

Of course, we're not looking for anything exclusive. It can be a talk already given to another CFUG. But certainly if a speaker can't make it to any one group, or can't pick which one to present to virtually (if they use Connect), the speaker can at least present to this group and know that they can reach a wide audience, since all 1,100 members receive a notice by email of each upcoming meeting.

The topics can be anything related to CF, including ancillary tools, frameworks, products, etc. We want to help carry the flag for the CF community and be a resource for everyone. We can't expect that each meeting will interest every person, but we can hope that everyone might find value in one or more talks over time.

For now we're meeting irregularly (we've had 10 17 so far (update as of Oct 2007), sometimes with a week or two between them, but some on the same day). We'll fall into a rhythm of regular scheduling once we have a handle on availability of speakers and interest from the audience. For now, any ideas are welcome, and we already have a few folks lined up having expressed interest.

So again, if you're interested, or know someone who may be, let me know. My contact info is at right. Thanks in advance.

New place to find recordings of Online ColdFusion Meetups

Note: This blog post is from 2007. Some content may be outdated--though not necessarily. Same with links and subsequent comments from myself or others. Corrections are welcome, in the comments. And I may revise the content as necessary.
If you're a fan of the Online ColdFusion Meetup, note that you can now find the URL for the recording of each meeting on one place in the Meetup Message board (this is in addition to it being listed in the UGTV site).

For those who've not heard of it, I've mentioned in the past that I'm hosting the revived Online CF Meetup, which is a virtual (and Adobe-recognized) CF User Group that meets via Acrobat Connect on a regular basis (weekly, recently).

Well, we also record each meeting, and until now, I'd create a new email in the meetup message board, a precedence which Steven Erat had started when he ran the group.

But I just noticed today the option to "pin" a discussion, meaning it remains at the top of the message board all the time. So I've just created a new message listing all the past recordings and pinned it, and will instead just change that after each meeting. Note that you don't need to be a meetup member to see that message.

And in case you may want to share the URL for any reason, here's a TinyURL version of it: http://tinyurl.com/2dbdnk.

Finally, some may ask why I list it in both places (the meetup site, and the UGTV site). I don't know, I just felt that meetup members shouldn't have to look elsewhere for the recordings, or wade through the ever-growing list of all recordings at the UGTV site.

For those not familiar with the UGTV site, it's a subset of my web site (http://www.carehart.org/UGTV/) where you can find now well over a hundred recorded UG presentations from around the world. It's search-able, sortable, has RSS feeds (even for a specific search keyword), and more.

The meetups have been going great. If you'd like to speak at one, or know someone who does, have them drop me an email. My contact info is listed at right.

Copyright ©2024 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