But have you ever found that when you tried that, you get:
...even though you KNOW that you're entering the right id? Indeed, one that has been used before?
Perhaps it also happens on other Adobe site properties, and the trick I propose may work for you, also.
I present the list in two forms: first, just a list of all the entries (31 of them), and second, broken down by category, in case some category may be more interesting to you.
Here are the 31 entries, in descending order by date.
I have more to say about the list (and such lists) below, but for those who like to "get to the point", here's the list:
There are an awful lot of currently active conferences covering CF/CFML for such a "dying" product and/or language.
I count 12 annual conferences (for the current year) which cover the topics (CF or CFML) entirely or as a major track, as listed in the category on CFML conferences which I keep updated in my CF411 resource.
Here first are the next several coming up:
If you're looking for how to configure CFBuilder to open htm files with the CFML editor, see that other entry. This one instead is about the related idea of having CF (the server) process htm (or other) file extensions. There are certainly pros and cons.
I'll post a review in coming weeks after I've had a chance to take a look.
Free Preview Chapter on ORMIn the meantime, they have also offered for free one of the chapters in the book so you can get a taste of the book's approach.
It's chapter 4, ORM Database Interaction, and as you'll see John leads you gently through this important new feature of CF9. Assuming you have no prior experience with ORM, he works in 20 pages from introducing the concepts, to quickly configuring and coding, to working with relationships, and more. You'll see he uses lots of screenshots and example code.
One editorial/review comment: I did notice that the preview chapter lists a last section to be on "custom configuration", which isn't ever found in the chapter. I brought this to John's attention and he apologized that it slipped through.
Having contributed to several books myself*, I know that can happen and I don't regard it as a big deal. It doesn't take away at all from the rest of the book.
Looking forward to the rest of the book
As for that rest of the book, and why you may want to consider it, the introduction indicates it "will teach you the basics of ColdFusion programming, basic application architecture, object reuse, and ORM concepts before showing you a range of topics including AJAX library integration, RESTful Web Services, Unit Testing, building custom tags, and his hybrid example of tags and objects COOP" ... "with real-world examples of the hows and whys, to get more done faster with ColdFusion 9" ...[and] "also covers the new features of ColdFusion Builder and additional version 9 updates".
I'm sure it will benefit many, and I'll look into all that when I get the review copy, and I'll be back to pass along my observations.
*I'm sure the publishers of my own books would think it appropriate at this point to mention those other books, which are also out recently and updated for CF9. They are the ColdFusion 9 Web Application Construction Kit, Volume 1 (Getting Started), Volume 2, Application Development, and Volume 3, Advanced Application Development.
I had noticed today that Budd Wright from PelcoSolutions (aka DVS Interactive) blogged this weekend that "BestBuy Uses ColdFusion". That certainly caught my eye (heck, I was in the store just yesterday.)
Just the BestBuy "trade-in" site, but more than meets the eyeAs I read it and saw it was about their trade-in site, I thought, "well, some may bemoan that it's 'just a subsite'", and therefore may not find it quite as compelling as if it were the main site. That may be so.
But on closer examination I found something that is indeed still more compelling. What BestBuy is using (that uses CF) is really a licensed service from dealtree.com. And if one looks at that page (where DealTree lists others using their service), we see that indeed it's used also by Dell, TomTom, Sharp, Buy.com, Gateway, Casio, Ebay, and others. So this is about more than just BestBuy! :-)
These other companies (Dell, TomTom, etc.) would have high expectationsThey all certainly wouldn't have chosen if if it wasn't suitable to the task, and you'd think someone higher up in each company had to clear it, since trade-in processing is pretty public-facing (both in-store and online).
Perhaps we can hope it may raise the profile of CF within the companies (though really, it's probably just seen as a utility to most, SAAS that just works, so that may be too much to hope for.)
Still, since these are companies which will require fast response in both the in-store and online sites, it's certainly a nice set of examples of e-commerce CF use that we can point to, so thanks for sharing, Budd.
I figured this was all a little much to put in his blog as a comment. :-) Plus I thought that my blogging it separately might be a nice way to give his entry a little more "link juice" in the search engines. :-)
Who else is using CF?I'm adding this after a couple of comments below, of people noting other sites using CF. I didn't think to mention it when I wrote this but I do keep a list of resources helping people who may wonder what other sites run CF. It's one of the 125+ categories in my CF411 site:
To be clear, I'm not keeping a list. Instead, I point there to many sites that do keep such lists.
I think it's helpful to have all the resources in one place. Indeed, ultimately I'll move this to my "resource lists" page where I keep similar "compendia".
I created the list of VAR scope resources today after helping a client with a problem which seemed related to this classic problem: the need to remember to var scope your variables in CFCs. It's often the cause of subtle bugs. Like many, they still hadn't heard about the problem (or had seen mention of it but didn't really understand it).
So if you're in that place, or know someone who may be, here are resources to help get started on understanding the topic and related issues. As always, the CF community has rallied the troops on the matter, and several folks have blogged in various detail or on various related aspects.
About the resources
A real live use-case, from scratch
What's interesting is that it will be an installation from scratch, in a "cinema verite" approach where we will assume nothing and if we trip over things, we'll talk about them. We'll talk about what I hope to gain by using Mura, and why it seems a good fit.
Ee'll proceed each step of the way with me as the new user (I have never used Mura), the Mura guys as my trusty guides, and of course with people able to ask questions all along the way and hopefully learning for themselves as we go.
Though I've not yet used Mara (or any CMS), I've been a big fan for a couple of years, observing it from the outside. Indeed, I blogged about how very impressed I was with their site in my May 2008 entry "A CFML-based product that really gets how to win customers, and what we can learn from it". And then I've watched as a couple of the ColdFusion Meetup episodes recently had covered Mura.
Though I've never really considered a CMS for my site, as I saw all that was possible with Mura and how it allowed for integration of existing CFML, I started to wonder if it may make sense to consider it for my site.
Going about enabling a CMS for a hodgepodge site
My site really hosts a few things and therefore offers different challenges in considering enabling a CMS. And this is what we'll cover over the next few weeks.
Some parts are static while others are dynamic (database driven). Some are just long static lists (my articles and presentations). Similarly, the CF411 site (which redirects to a page on my site) is an even larger list.
Each has just grown over time and naturally I'd love to make them both database-driven and to have some sort of paging, categorized presentation, searching, and such, and Mura can provide that. It can also allow me to let others contribute (especially to the CF411 site), which is a natural fit for a CMS.
Of course, I could also enable such db-driven paging and user contribution by hand. Idneed I had done that already for another part of my site, my UGTV repository of links to hundreds of recorded CF presentations. I knew when I started that it would not only grow substantially and that it would require entry of data by others.
So besides wanting to add more dynamic (and user-contributable) features for the other "static" parts of the site, it would also be interesting to see if/how I might keep or change this existing CF-driven part of the site. FWIW, the CF-driven part does not use any framework, either, since it was really a smallish app.
Another thing I've long wanted to add with all these sections (articles, presentations, UGTV, and CF411) is the concept of a "Landing page", where each item could have a page with more detail about it as well as features like rating, commenting, recommended related items, and such.
Again, I could do that for the UGTV site since it was already DB-driven, but since I'd have to make the other three sections be DB-driven and I'd have to code that, I just started to wonder if a CMS may be the way to go.
Mura to the rescue, and a case study is born
I thought to ask the Mura guys about things, and they felt on the surface that it woudl be a good fit. They asked me to present a list of the things I'd be interested in adding (as well as preserving), and on reviewing it, they not only felt it would work fine, but that it would make a great case study for the Mura show. They knew me from the past CFMeetups and they sensed that I would welcome the chance to do all this live on a Connect session. I said I would, absolutely, as I was sure many would benefit from seeing such a raw, live presentation. As they thought it over, they decided to propose a few weeks (whether they happen consecutively is to be determined), and I was open to that, as well.
Indeed, I expressed how I preferred (with the extra time) that we really do do it from scratch, so that people see really everything entailed. And of course we'd introduce how we got to this point (what you've read above), how they think it can all be done, and then (once we do the install, all this in the first show), we would proceed in future shows to start really integrating the site into Mura.
I'm really looking forward to it, and I hope others will too.
Update: The recording is now posted and available.
I'll demonstrate here calling the REST API for the Harvest online timesheet application. (If you would want to point me to another alternative timesheet app, no need as I'm happy. I realize there are many. Indeed, I list many of them on my CF411 site section for time tracking tools and services.)
Anyway, the Harvest API docs pages do show a Ruby example. While I didn't take the time replicate that exactly (it has a few more touches like error-handling, extensibility, etc), I did want to at least show how one could call the REST-based API using CFHTTP.
Some Simple CFHTTP Examples
Here are two simple examples, first, showing calling the who_am_i method:
<cfhttpparam type="header" name="Accept" value="application/xml">
<cfhttpparam type="header" name="Content-Type" value="application/xml">
Note that I'm using the same nomenclature they do in their docs, in that you would need to change the "subdomain" value to be whatever your own it. Also, like them I've just left the placeholders above for your Harvest username/password. And the API docs show needing to pass in those two headers, which I do in the CFHTTPPARAM.
Getting TimeSheet Entries
The next, more interesting example calls the method to get the timesheet data for a given day (and yes, since the REST API has no state you do need to pass in the username/password on each call. In a more complete app, you might prompt the user for those and store it in a session for reuse, etc.):
<cfhttpparam type="header" name="Accept" value="application/xml">
<cfhttpparam type="header" name="Content-Type" value="application/xml">
Note also that the date is in Julian format (the number of the day in the year). I'm showing Dec 10. Again, I could elaborate this to take in URL variables to change the date. I'll leave that to the reader.
So how do you calculate the date in Julian format? Well, you could of course modify the code to use CF's date/time functions to do a conversion, but if you just want to look up a given day for manually, here's a trick. If you've never noticed it (as a Harvest user), the real web-based Harvest timesheet always also shows the julian date in the URL for a timesheet entry.
Getting Real Data from the Returned XML
The result of both calls is some XML. In the first example, I ignored it. In the second, of course, you need to get the data.
So I pass it to the XMLParse function (new in CF6) and still missed by many. That converts the XML into an internal CF XML object, which represents the XML as a series of nested structures, arrays, and attributes. If you do a CFDUMP of the result, you'll see what I mean:
And to output the hours for the first entry, one could do this:
How did I figure out that nested set of arrays and structures, you ask?...
Learning More about XML processing in CFML
I won't elaborate here about how to go about accessing the various parts of the (sometimes complex) internal XML object. But you can learn it really quickly. Most CFers are blithely unaware of the power of this feature set (or they get confused and give up). There are two (well, three) places you can learn more.
First, the best resource on CF/XML processing (in my opinion) is a great extended Adobe Devnet article by Nate Weiss. Though from 2002, it's an all-time classic (recovered from the archive.org site).
He introduces the topic assuming you know nothing about XML, and steps quickly into processing it in CFML (reading and writing it), including understanding all those structures, arrays, and attributes. Within just a few pages, you'll be amazed at how much more productive you can be with XML processing in CFML.
Nate even introduced the valuable concepts of using XPath/XMLSearch to make accessing XML even easier and XSLT to do conversions from XML to other formats. He does all this very gently and in a compelling way. I still refer people to it often, to this day (and return to it myself when I'm stumped).
That said, there are of course a few ways that XML processing in CFML has evolved since CF6, so you will want to check out the CF docs as well. Besides the CFML Reference on XMLParse, note that there is also a chapter on the topic in the oft-missed ColdFusion Developer's Guide.
Many only know of the CFML Reference, but they miss out on this 1,000+ page free online book (from Adobe). The CF8 version of this is here and the chapter here. The CF9 version of the manual is here and the chapter is here.
Hope any of that may help someone.
I belong to (and also run) many Google groups, which can offer a great solution for a hosted mailing list. Sadly, if the group owners aren't careful, the list can soonbecome a haven for spam.
But there are three simple solutions (one in particular) that the group manager can take to prevent the problem, and I am NOT talking about moderating every message. Two of them add only a little new effort for you as manager, but the reward is so worth it.
To make (or consider) the changes, visit the page to manage settings at http://groups.google.com/group/groupname/manage_access. Or to get there, select "group settings" on the right, then choose the "access" tab at the top, and make the changes below, which I discuss after the screenshot.
From there, change 3 settings:
- "who can join" - change from "anyone" to "people can request an invitation to join". You don't need to use the "custom question" option. This will just require that people request you let them in. Again, most spammers won't bother. It's like how locking your car door causes most thieves to just move on. More than that, this changes it so that people can't just join by sending an email, which really is where most spam comes from
- "Who can post messages?" - change from "anyone" to "members only"
- "Message moderation" - you don't need to set it to "all messages are held for moderation. Leave it as "No moderation", but do consider checking "Messages from new members are moderated". Yes, it means that when a new member posts a message, you'll get an email with a link to view their message and mark them as either "always allow" or "block".
Doing these, especially the first, really will stop most of the spam. Your members will really appreciate it.
A big difference is cf.Objective()'s is ending November 30. Check out Sean Corfield's post for more information on the cf.Objective() call.
Here are the tentative tracks for sessions:
- AIR and UI Development - How to enhance the experience of your applications. Bring your application to the desktop or mobile.
- Best Practices - Tips and Tools for improving and protecting your website.
- ColdFusion (advanced) - Building applications, Charting, APIs, Custom Tags, PDF, Forms, Railo, Groovy, Facebook apps, Geolocation, Web-Oriented languages, and Integration.
- ColdFusion (basics) - Getting started with ColdFusion
- ColdFusion 9 and ColdFusion Builder - Topics from Adobe related to the new release of ColdFusion 9 and ColdFusion Builder
- Configuration,Testing & Deployment - Deploy your websites with minimal issues and know what to expect
- Databases - SQL, reporting, procedures, integration, server tuning
- Flex (advanced) - An indepth look at building Flex applications
- Flex (basics) - Getting started with Flex
- Frameworks - Discover various Frameworks for ColdFusion and Flex
- Managing Projects - Team Management, Project Requirements, Customer relations, Project management
- OO Development - Object Oriented programming and using CFCs
They note as well that they're always open to new speakers.
Finally, the pointed out as well that the early bird deadline is Nov 30. More at CFUnited.com.
One is a 3-minute conglomeration of comments from several people. These are both the "official" Adobe talkinghead-style videos, and some are more like "live remote shots" taken from the floor of CFUnited. Besides a couple of appearances in it, near the end they included me saying something fairly quotable. I'll let you find it. :-)
Then there's a another set of individual interviews with different folks (the talking head style), which appear (currently) at the top of the CF9 product page. You click on whichever one shows up (or click "community feedback") and an interface like slide show picker appears. You can pick any of them and at the end it offers to advance to the next. (That link to them at the top may eventually no longer appear on that page, I suppose.)
It was a treat being interviewed for these.
About the process
I got the invite over the summer and was told they'd be taken in a room at CFUnited. I assume the others were done there, too, but I don't know. The room was staffed by a video production team.
There was no way of telling for sure as we did them whether what we said would be included ultimately, and/or how much. Indeed, the interviews were a lot longer than what was showed (about 30 minutes for less than a couple), so much ended up on the cutting room floor for each of us, obviously. That was to be expected, of course, and I'm just thrilled to have been included at all.
My only disappointment: well, if you look at the videos and even the pictures at the top of the page, you'll notice something about mine stands out from the others. The production folks had made a point from the start about wanting me to "be sure to use my hands", so my inteview and picture show me gesticulating pretty vigorously. :-) It's not really my normal style, but if that's what they wanted.
But then I notice NO ONE ELSE is. Maybe I was an early interview and they dropped it eventually. If I knew the folks doing the interviews, I might feel like they punked me. :-) Heck, even on the tight shots (where they zoom in the editing) you can still see my fingers flying into the frame. Grr... :-)
And yet another appearance spotted
I notice that my shiny face also appears (for now) further down the product page next to a link labeled "Get Inspired". That's cool to see. I suppose it may well rotate with other folks (but it hasn't when I've refreshed it today).
Guess my 12 years of CF experience have born yet more fruit. Thanks, Adobe. And certainly I hope what I said is of value to some viewers, brief though the interviews are. Next time, if invited back, I'll also wear a less floppy-looking shirt! :-)
The problem is annoying, because if you have no other sync failures (such as Outlook calendar sync errors), you can't know for sure without digging into the hotsync log.
The good news is that Palm has come out with a solution to make this finally go away:
Update: Curiously, that link I had originally offered here in 2009 goes to a page that no longer offers or explains the fixpmtrace.prc file, as it used to. That's odd.
And while I found another version of the page on the site: http://kb.hpwebos.com/wps/portal/kb/na/centro/centro/bell/solutions/article/44937_en.html. Sadly, though, even that page has a failing link to that prc file.
I found all this in answering a question someone raised as a comment.
For more details, and a possible alternative solution, see my reply comment at http://www.carehart.org/blog/client/index.cfm/2009/9/7/solving_palm_pmtracedatabase_problem#c885AB116-E50B-DEA9-80CFFE5C48A7121E.
As the Palm site page discusses, you install that app onto your phone, and then run the FixPMTrace app on your device. It's important to note that it's NOT ENOUGH just to install the app onto your device. You do have to run that app from the Palm launcher (the list of apps, accessed by the "home" key, as usual) in order to have it do its magic. All it does is turn off the archive bit on a file so it stops trying to back it up.
Hope that helps someone else.
PS And before some of you jump on me for still using a Palm, :-) just know that yes I am seriously considering moving to an iPhone after several years of relative happiness with my Palm devices. I've been using a iPod Touch for a couple of years and really like that. Carrying both devices is of course a pain, so reducing it to one just makes sense.
And yes, I know about the Palm Pre. It's just that Sprint coverage in my home is really poor, and since I generally work from home, I just can't take it anymore. The Pre won't solve that (I called: they said it wouldn't likely be any better.) Since my wife has ATT and she's been happy, the forced move to ATT with the iPhone isn't a problem.
Still, I leave this Palm tip for those who may benefit.
One interesting document you might miss is the "Windows Vista SP2 and Windows Server 2008 SP2 Test Focus Guide", which is a 40-page guide that lists various changes, with scenarios and step-by-step instructions to recreate and observe the feature changes.
That's a nifty idea, and one I wish more vendors offered. It's not something I've seen offered for previous Windows OS releases (base or SP's).
I don't think it lists every feature, but it does list many that I'd not seen mentioned in the more glitzy "what's new" docs (at the URL offered up top here). By contrast, the Test Focus Guide is more text-heavy (all stuff, no fluff) and kind of rough.
For instance, I wish it offered more of a table of contents, because you can't readily eyeball what all it covers. I found the easiest way to find each topic is to search for "goal:", since each scenario has a listed goal.
Anyway, check it out. You may find something of interest there among its dozens and dozens of scenarios.
If you start to use the new Adobe Presentations service, an online presentation-building tool, now at labs.adobe.com, you may want to engage in some discussion with other users, so may go looking for some forums. You may struggle as I did.
Sadly, there's none for it listed at the acrobat.com forums page. Perhaps that's because Presentations is still in lab status.
There's also none listed in the Help menu for Presentations. There is a link to share feedback, which gives you an email address. That's better than nothing, but it's not a discussion forum. Some may even fear using it if it might be a black hole.
I decided to go ahead use that feedback address. I was delighted to get a response pretty quickly (well, first an automated one, and then a real person).
But what surprised me most was that the automated email (offered in response to using that feedback address) offered the URL for the forum!
So where is the forum? It's at: http://forums.adobe.com/community/labs/presentations/.
I responded that this link really ought to be listed in the Help menu of Presentations, but that suggestion seems to be challenge for them to implement. Oh well. I decided to share the info here, and also as a comment in a blog entry on Presentations in the Acrobat.com blogs.
Just seems it shouldn't be so hard to find these forums.
- How To Optimize Your Site With GZIP Compression
- How To Optimize Your Site With HTTP Caching
- How To Debug Web Applications With Firefox
- Using JSON to Exchange Data
- How To Make a Bookmarklet For Your Web Application
- The Quick Guide to GUIDs
Still others aren't specific to web development, but can be valuable to all kinds of developers, and it was one of these that led me to the site in the first place:
- A Visual Guide to Version Control
- Intro to Distributed Version Control (Illustrated)
- Keeping your data backed up
The site is Better Explained, whose tag line is "Explanations for everyone". The author does a pretty good job of that. Some of the topics are a little too one-sided (the discussion of HTTP compression does only show setting it up in Apache, not IIS), and of course there's no mention of CF anywhere. :-) But we can't expect that from everyone. There are lots of positive comments and linkbacks on on many of the entries, so he'd done a good job in the eyes of most.
Indeed, if you may be hearing the siren call of Ruby on Rails, they have an article on that: Starting Ruby on Rails: What I Wish I Knew. There's also an intro to MVC, but again it's from a Rails perspective: Intermediate Rails: Understanding Models, Views and Controllers.
If there's something you'd like to see the author address on the site, he has a post for that, too: What do you want Better Explained?.
Some may read this and say, "big deal, I've been doing that for years", but it's one of those little things that some just never notice or think of. If you've not considered the option, why not check it out?
(Update on 9/30/2010: Others may have noticed that they DID have it set to more than 10, but recently they lost that functionality. I have the solution for that, as well.)
Others may say, "well, why choose to see more than 10? They offer buttons to let you page through the results", but the point is that people often will not page through them. I can tell you from my own experience that seeing more than just those "top 10" results when searching makes me more inclined to quickly consider more results. More on why do it in a moment.
How to make the change
The change it really simple. Just click the "Search Settings" box to the right of the top of the search page at google.com. (It used to appear to the right of the search box as a "preferences" link, but now it appears at the top right instead.)
If you're logged in, it will instead show as a link to "Settings", with "Search Settings" as a menu option under that when you click on it.)
On the preferences page, the 4th option controls the number of results.
Sure, they warn that 10 results per pages is "faster", but in these days of high speed internet, that's of course a relative assertion.
Update on 9/30/2010: Need to turn off Google Instant search
As I noted above, some may have noticed that even with that setting set, and saved, they still see only 10 results. In fact, if you re-open the preferences page, you'll see that it just ignored your choice and is back to 10. What gives?
The problem is the new "Google Instant" search feature, implemented recently (by default), which allows search results to appear as you type in your search criteria. If that's enabled, then Google does not let you set the results to more than 10. That's a shame, but worse is that they don't warn you of this when you try to change the number of search results.
The setting appears two below the "number of search results". Choose "Do not use Google Instant", if you want to see more than 10 search results.
Sadly, if you try to change both settings at once (turn off "Google Instant" and change "number of results"), that doesn't work either for the same reason above. Instead, do it in 2 steps: turn off Google Instant, save the preferences, then edit them again and change the number of results, and save that.
It really is too bad that Google doesn't handle both problems more gracefully.
Why to make the change to see more results
So why make the change to see more results? We all tend not to want to page forward through search results, right? But often some of the best results--those with real valuable info--are beyond the top 10, perhaps just beyond them, or perhaps 30 or 40 down.
Of course, hucksters know that people are reluctant to page down and go to great lengths to get their stuff in the top 10. (Granted, there are many fine entries which also show up in the top 10 just because they deserve to.)
But if you set your results to 30 at a time (or some other number larger than 10), you're just more likely to find (or consider) other results. It's surely paid off for me, and the speed to show more results is hardly noticeable.
Also, seeing 30 at a time makes it feel like no problem to go through a hundred results (including following the link to look at some of them) in a matter of minutes. Just something psychological about feeling that paging forward a couple of times is no big deal, but I see a lot more results doing that than if it was set to 10.
(And given the conflict with "Google Instant" discussed above, I'm happy to forego that feature to see more results instead.)
Hope this may help some of my readers.
PS Oh, and if you have changed the Google preferences but find your browser keeps losing the changes over time, check out the other recent entry I referenced at the top here, which addresses this very problem.