[Looking for Charlie's main web site?]

Stepping up to co-lead the CF Online Meetup, stepping down as Atlanta CFUG president

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.
For fans of the ColdFusion Online Meetup group, which Adobe engineer Steven Erat created in 2004, I want to share the news that Steven has stepped down (citing work challenges) and has passed the mantle of leadership to myself and Ray Camden. We will serve as co-leaders of the 900-member virtual user group.

For more information on the group, which has offered (and will continue to offer) online presentations from speakers around the world, follow the link on this badge:

Once you join the group (it's entirely free), you can read more about the change in leadership, as I wrote a message of introduction at the group message board.

I also seek (in that message board entry) feedback from group members about the future of the group and in particular, prospective topics of interest for online presentations. (Please don't offer such here, if you're a member. Offer it on the message board for all members to see.)

Of course, any of the group's recorded presentations will be offered on my UGTV repository of recorded user group presentations, and indeed I hope that the Meetup may become a primary source for more and more varied recorded presentations.

Still, you'll want to consider joining the group (again, it's entirely free) to receive notification in advance of the online meetings. The group's message board itself can also be used for community interaction (though it's not been too active in recent months). Perhaps we'll see its use expand in the future.

Anyway, come check it out, and spread the word. We'll organize our first meeting within a few weeks, for sure.

As for the Atlanta CFUG, I have stepped down from the presidency of that group just this month. We coincidentally had elections just a few weeks ago and as I knew the change in the Meetup was coming, I stepped down (but didn't tell folks about the meetup as it wasn't finalized). Can't run two groups at once! :-) That wasn't the only reason I stepped down, but I won't deny that running the online meetup should be a lot less effort than running a real physical group.

I also knew that there were many capable prospective leaders in the Atlanta board of directors (numbering 14 strong, and of which I am remaining a member) who could step to take on that leadership role. The board selected Teddy Payne to replace me, and I'm sure the group will do great going forward.

The chance to lead the online meetup group is just a great challenge. With over 900 members, it has incredible reach, and both Ray and I are excited about the prospect of keeping it going as a great place to find online presentations, whether from ourselves or all the other fine speakers out there (and new ones who may want to give it a shot).

Again, if you're at all interested, click the badge above to join. We're happy to have you! :-)

Best wishes, Sean Corfield, as he leaves Adobe next week

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've not heard the news from his site today, Sean Corfield has announced that he's leaving Adobe next week, on April 5th. No, this is not a bad, early April Fool's joke. If you've not heard the news before now, I think it may be because Sean's innocuous-sounding blog entry title ("Scratching the Seven Year Itch") maybe hasn't caught everyone's attention.

Of course, as the many well-deserved comments of praise, thanks, and well-wishing show, there are many who have in fact heard the news and are letting it sink in.

Sean's moving on to do work as CTO of a startup--Scazu, which is in the health and wellness space. I could say more, as I've been involved a little in its early goings as well, but it's not yet time to share any further news.

I will say that I was as shocked as anyone to hear of his decision to leave Adobe. And I'll say for the record, lest anyone conclude otherwise, that I had absolutely nothing to do with his being wooed away. :-) Like I said, I was surprised when I heard of it, even as an insider. Of course it's great news for the Scazu team and he's going to be an incredible addition.

And as the well-wishers have said in his blog comments, this new-found freedom can be as much a blessing for the community as anything else (which is indeed what many said when I left New Atlanta). Sean's also mentioned that he will have time to do independent consulting, and that's even more great news for the whole community.

I do certainly wish him well in the new venture, and I wish Adobe well in finding someone to fill his shoes. So many other things seem to be going so well at Adobe that it I'm betting this will be a smooth transition. Knowing Sean, I doubt he'd have considered it otherwise.

Looking forward to seeing even more from him contributing to the community--if that's even possible! :-)

WebDU animations for 2007 now online

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.
Folks, I mentioned in an earlier entry that one of the joys of the WebDU conference was the fun animations that preceded the keynotes. Well, the first day's have been posted online now: http://animation.nectarine.com.au/, and perhaps by the time you view this, both days will be there. Do check them out. Quite funny.

Oh, and when I mentioned in the earlier entry that one had a "Lost" theme, I was mistaken. I was thinking of something Tim Buntel had done on his own in introducing his Scorpio talk.

Stuck sending email from a hotel or other blocking environment? Here's a solution when others fail

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.
Hope this may help others. If you're in a situation where you find you can't send email out of your mail client (like Outlook or Thunderbird) because the ISP (or hotel, or client location, for instance) is blocking all outgoing mail (SMTP and the default port of 25), you have a couple of solutions. The common ones (more below) weren't working for me, but I found this gem. Did you know that if you're a gmail account holder, you can setup your mail client to use gmail's mail server to route your outgoing mail through? Yep. It really works, and saved my bacon today! :-)

Important Update

Well, I have to report some news since learning of this and posting about it. It turns out that this approach has the unfortunate side-effect that it makes your note go out as "from" your gmail account--even if you sent it as "from" another account in your mail client. That's a real bummer. Again, perhaps better than nothing, but not what I'd expected. On the surface, it may seem only a nuisance. If you read your gmail mail with your mail client (via POP), then you may not even notice this. But I did notice that the "to" address on replies sent while using this was my gmail address, which is not what I'd expected. And I just checked, and indeed the recipient also sees the email as coming to them "from" your gmail account. If either is a concern, then be aware.

There is a real gotcha, though, if you reply to a list. I had a note from a list that came, as expected, "to" my carehart.org address. When I replied, it would normally go back as "from" that address, which is the address on file at the list. But this change to the gmail address meant the note now went from an address not on the list. Some lists will bounce such notes, so you'll now it's happening (and now you'll understand why). But this list is one where if you send a note from a non-subscribed address, it just ignores it--so the note never got to the list. Only now did I connect the dots. Forewarned is forearmed!

You may not want to *always* do it, but when you're stuck in a hotel and need to get mail out, it's a blessing. I learned of it while traveling at the WebDU conference in Australia and after the conference was staying in a small hotel that was blocking my email. i couldn't get their smtp server address to use instead (more on that below), but using gmail as the smtp server worked!

Here's the blog entry that clued me into the solution. Many thanks to him.

As for how to configure your mail client to this up, the blog entry above gives the basics. You just want to change the SMTP (outbound) setting to use smtp.gmail.com, and port 465 (telling it to use SSL). You also want to configure the login authentication (for sending mail only) to be your gmail account. If you're really not sure how to change your mail settings, this trick may be above your level. But I will point out that Google themselves offer a page of info showing how to configure your mail clients. Just note that it's showing how to setup the client to both send and receive gmail. This trick is JUST about setting up to send email via gmail. Don't delete the incoming (pop) mail settings in your email client for your mail connection.

One last point about the option above: you do need to configure Gmail to permit POP access, as discussed here. But note that you don't HAVE to use pop (meaning a mail client) if you prefer to keep reading gmail via its web interface. If you never connect via pop, it will still be accessible via the web. Also, notice that even if you do collect it via pop (as I do), there's an option there to keep the mail in Gmail's inbox, if you prefer, so it's till always accessible via the web (though the web interface has no way of marking mail you read on your mail client).

Here's one other benefit of this approach of routing email through gmail: have you ever gotten bounces when sending mails because the recipient's mail server says yours is blocked in the "relay blacklist" or similar? This can happen on a hosted mail server because some chucklehead on the same server is involved in spamming, and gets your entire SMTP server detected as a spam source. Using this gmail approach would seem to prevent that (though I suppose some day some idiot will find a way to cause gmail's server to be blacklisted--but they'll certainly be a lot faster to address that than your average hosting provider, I think.)

What are some of the other solutions? Well, here's one entry on some alternatives and following is why they didn't work for me. Still, if you don't use Gmail (or don't want to use the approach above), they're worth noting:

  • Get the hotel (or ISP) to tell you the name of the mail (SMTP) server they prefer you to use, and use THAT in your mail client. Sadly, it's not always possible to get that from the hotel or client staff.
  • Use a webmail interface instead. There's almost always one provided by your email provider, and beyond that there are tools that will serve to do it for you even if yours does not (like www.mail2web.com). But I much prefer to have all my mail (in and out) saved in my mail client, both for archival and searching purposes.
  • Use a 3rd party mail relay service, like smtp.com and smtpanywhere.net. If I hadn't found the gmail solution, I was about to do this. Couldn't find any that are free.
  • Use a tool like JiWire HotSpot Helper, which does mail relay and more (like enabling secure email login and transmission, which is more important than many realize), but it's not free (there is a free trial).
  • Use SSH tunneling, as discussed in a nice write up. Unfortunately, I tried it and my mail host doesn't support it. I've asked them.
  • (Added since original post) Since only port 25 specifically may be blocked for you, you may find that your mail provider offers an alternative port to use to collect email. Mine does not, though as above, I have asked. (This was mentioned in the article I pointed to, but I didn't think to bring it up here in this list. A couple of commenters wanted to stress it as an option, so I'm adding it.)

If there are any other solutions I've missed, please do share. Hope this helps someone.

WebDU's done...the conference is over

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.
Well, the 2007 WebDU conference in Sydney Australia is done for another year.

For those who haven't been, it's a great time. The people are wonderful, the food is great (especially for conference food), the sessions seemed to serve a lot of interests, and of course, it's in Australia. :-) Geoff Bowers and the Daemon crew did a bang-up job running the event.

I gave a well-received talk on CF Caching options (discussed much more than the "big 3"), led a "BOF" session on CFCs with the engaging and intelligent Mark Mandel (of Transfer fame), and also taught a day-long class on Wed, the day before the event, Fast Track to FusionDebug and FusionReactor. More on those at http://www.webdu.com.au/go/speaker-profile/charlie-arehart-atlanta-usa. Check out the funny graphical caricatures that they create for the speakers. :-)

More fun still are the wonderful Flash-based animations (a few minutes each) that are used to introduce the event and the keynote speakers. They're created by a company in Oz called Nectarine, and while they do have their 2005 and 2006 animations posted online (http://webdu.nectarine.com.au/), the 2007 ones weren't there yet, as of today. When they're posted, be sure to check them out. note to Ray: one of this year's featured a "Lost" theme.

So, I'm now sitting on a balcony in a quiet neighborhood in Sydney, relaxing Saturday afternoon after the week. There's a speakers barbecue this evening at Geoff's place in Elizabeth Bay. I plan to do a little sight-seeing before that. My wife couldn't make this trip, so I'm on my own, but I've lived in Oz before (back in 95-96, in Canberra) and brought her for our honeymoon in 2000, so I've been to Sydney before.

For any interested in some gory details, I arrived Monday, and will leave this coming Monday. It was a long trip getting here from Atlanta--about 24 hours in real time, the way United routed me (Atlanta, Chicago, Denver, LA, Sydney). The ticket had said it was Chicago to LA--no mention of the stop in Denver. No change of plane, but it certainly was a long way to get to LA! I left Atlanta Saturday at noon and got in Monday at 7am. Phew!

At least when I return, I get back the same day I leave. Ah, the wonders of the international date line. We're 15 hours ahead, so as I write this, it's Friday evening. It's made it challenging to stay in touch with my wife and clients--and internet access has been spotty, even at the conference. But that was the only blemish.

If anyone's looking for tech tidbits of what may have been announced, I'll leave that to others. Also, I gather that all the same info was released in Spring
, which happened the day before, and about which there have been plenty of other bloggers writing. So I'll sign off here. It's about 80 degrees, and kind of warm on the veranda here (late summer in the southern hemisphere). Time to get off the computer, and go have a cool drink. :-)

Switching to a new computer? Make a virtual machine to hold the old one. Here's how, free.

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've ever needed to move from one computer to another, you may know the pain of losing all the work of setting up the old one. Don't wish you could just magically keep the old one around to refer to when needed? And I mean really run it, not just look at backup files. Well, here's a solution you may not have considered: make a virtual machine out of the old computer. Then while you work on the new one, you can always go back to the VM to either see how things were before, or remind yourself of apps or settings you had, etc. You can do it for free (both create the VM and then use it) on Windows, and there are options for Linux and Mac as well. Here's how.

Background, and less satisfactory approaches

What am I getting at? Well, I've had to trade up laptops a couple times in recent years, and each time I've lamented having to lose all the work that went into setting it up.

Now, some will say "take a backup", but that's no good. First, if you mean to restore onto the new machine, if I have an OEM licensed version of Windows that would wipe out the new OS. With some vendors, like Dell, that could be a problem. (If you don't use Windows, again, don't leave yet. I cover Linux and Macs below).

But even if you'd deny the significance of that, the point is that the alternative I'll describe still has many benefits over simply doing a backup/restore (in that you can continue to use both the old and new setup at once, by way of virtual machines).

Some may also point out that there are programs to help move apps to a new computer, and even built-in OS features to move settings. And then there are tools like Ghost. Or at least by taking a backup, I could refer back to the files I had in the old machine.

But again none of these offer the "magic" solution of allowing me to really keep the "old image" of the previous machine available to view and even run with while installing, configuring, and going on to use the new machine.

With the VM approach, you could keep around the old machine's installation for months or years. Just fire it up as a VM whenever you want to recall how things were on the old machine. Sweet! :-)

One Solution: VMWare Converter

VMWare logo So what prompted me to write this? Well, I've known about and occasionally used virtual machine software for years. I last wrote about them several months ago when the two market leaders, VMWare and Microsoft's Virtual PC/Server products, were released for free.

I figured then that creating a VM would be a solution to my challenge, but I never got around to it because I lacked space to hold the "backup". I've since gotten a larger external hard drive, and so could reconsider this.

Then I read today (in a magazine) of VMWare now having a product called VMWare Converter. Well, it turns out to be just the ticket (at least for Windows users. While VMWare runs on Linux, too, support for the Converter on Linux is experimental accoriding to their FAQ, I'll mention a Mac solution below.)

And note that beyond using VMWare Converter to create a VM out of any machine, you can also use it to make a VMWare VM out of a Virtual PC VM, or out of a Ghost image, and much more. Very compelling stuff, and again, all for free.

It seems that this is just the ticket for what I was trying to do, so I have installed it and will see how it goes. But I wanted to let folks know about it rather than wait to write of experiences after the fact.

(Even slicker, I noticed when I installed it that a hint popped up saying that if you wanted to create such a clone of a current machine without Converter being in the footprint, you could instead install Converter and create the clone from a bootable CD.)

Another Solution for Mac: Parallels Transporter

Parallels log For those using Macs, you may already know that the favored tool for using VMs there, Parallels, also offers this feature in a tool called Transporter. It too can create a Parallels VM out of a Windows PC, or out of a VMWare or Virtual PC VM. There's even a youtube video showing the process.

If anyone gets to using any of these, please share your experiences. If and when I do get to using it, if there's anything to report, I'll do so also.

Finding or offering ColdFusion jobs: over a dozen resources

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.
[This is a 2007 post which seems to come up often in google searches for folks. I would point out that I have a more recent recent post with more and updated thoughts on the topic, written in 2017. See Looking for CF people, or CF work? What can you do?]

With the recent uptick in the economy, I hear increasing interest from companies looking to find CF help, or people looking for new opportunities (jobs or contracts). As such, I find myself pointing out where to offer or find such jobs. After a couple, I've decided to make it a blog entry. Of course, this isn't the be-all end-all list. Feel free to recommend alternatives in the comments.

I'm going to focus only on CF-specific resources, so I won't list generic job sits like monster or careerbuilder, not consulting sites like Dice, etc. There are just too many to bother with. Just know those are certainly options.

Let me make one comment: if you're going to post an opportunity, be sure to indicate whether you're open to contract or only full-time, and also whether you're open to remote or only local developers.

Here are a few to start with. Some are places where you can post a job, others are simply aggregators of CF jobs found elsewhere:

Updated entries:

  • Clark Valberg's Developer Circuit - besides being a list, also offers a useful flex-based widget that user group managers or bloggers may want to add to their sites
  • Removed from the list, http://coldfusionjobs.com/, as entry appears to just be a parked domain (all links show the same non-recent info)

Note that I list a few user groups with jobs sections on their site. I mean no slight to any I missed. Just let me know.

Let me also point out that the ColdFusion Weekly Podcast has been making more and more job announcements. That's certainly a very compelling way to reach the CF audience.

Finally, another place for job-seekers to keep an eye on is Ben Forta's blog, in his "jobs" category:

I sense that he takes unsolicited submissions for jobs as well. Again, perhaps other bloggers also have job categories. If so, let me know.

Don't forget, of course, that CF-oriented consulting and product companies also often have job sections on their sites. Here are just a few (certainly not a complete list):

I'm open to any suggestions for more sites. Hope this helps some.

I'll be speaking at WebDU (Sydney) in 2 weeks, and presenting a day-long class as well

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.
For any who may be considering the WebDU conference in Sydney Australia on Mar 22-23, I'll point out that I'll be speaking as well as presenting a day-long class.

The presentation topic will be "Caching-In" on CF Performance, a talk which I plan to start offering in the States soon as well. I plan to explain not only the common form in query, template, and output caching, but several more as well.

The day-long classes will be an update of the "FastTrack Training for FusionReactor & FusionDebug" that I have given most recently in Europe. The price is just AU$175 for a half-day or $299 for the full (that's US$128 or 219, respectively). Details and registration are here.

The FusionDebug portion of the day will, of course, address the latest and greatest version 2, released just a couple of weeks ago. I'll have more to say on that soon.

It's been nearly 7 years since I was last in Oz (for my honeymoon), and nearly 11 years since I lived there. Several other yanks will be speaking, along with dozens of Aussies, a Kiwi, and a Nederlander. With tracks on CF, Flex/RIAs, Flash, and web techniques, there should be something for everyone. I hope any of my readers who attend will please come say hello.

Thanks to Geoff Bowers and the folks at Daemon for putting on this 2nd year of the show. I'll also be speaking at CFObjective and CFUnited, both of which I'll write about later.

Did you know about the NULL attribute of CFQUERYPARAM? I didn't, until today.

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.
Will the riches of CFML ever cease to amaze me? :-) Did you know about the NULL attribute of CFQUERYPARAM? I didn't, until today. Consider that you use CFQUERYPARAM and point its VALUE to a variable. What would happen if the value was empty, but your database required a null? How would you solve this? If you didn't know better, you might use an IF test to say "if it's null, use a null, else use the variable", but there a much more elegant solution.

Did you know that CFQUERYPARAM has a NULL attribute that is just for this purpose? It takes a boolean to indicate whether and when to use a NULL rather than the VALUE.

It's not new, having been around since 4.5 according to the CFML language history file. I've just never noticed it before. I learned about it today from a couple of folks on the great CFAUSSIE list.

Now, to be honest, the docs (CFML Reference for the tag) just don't make it as clear as it could be, I don't think (otherwise I'd like to think I'd have noticed it before). I don't see any mention of it in the Developer's Guide, for instance.

Anyway, you can read more about it in a blog entry from Michael Sharman, who I see also just happened to blog about it last month, with a lot more detail:


You might also want to read the comments there as well as at the CFMX 7 docs for the tag, both of which have people sharing their experiences using the tag, over time.

Using a range of hex values in a CF regular expression

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 were asked by someone to strip a string of all characters having ASCII codes from some value and higher, how would you do it? If you'd think to use a regular expression, you get 5 points. :-) But how would you get it to take a range? If you're ever stumped, here's how.

Assume you have a str1 variable with the string to be processed, and you want a resulting str2 holding the result. Let's assume as well that you've been asked to strip any codes with ASCII values of 160 or higher. This will do it:

<cfset str2 = rereplace(str1,"[\xa0-\xff]","","all")>

The CF docs do discuss using the \xnn option to search for a hex value, but they don't show how to specify a range. You might, as I did, try a few variations until you stumble upon it. That's the format.

Oh, and as for the xa0, that's the hex equivalent of decimal 160, and ff is the top of the range. I didn't find that it performed any more slowly with ff or some lower number.

Hope all that's helpful to someone. As for why you may do the above, I'd rather take that up in a separate entry which I hope to write today.

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