CacheBox Presentation Recording

We had a great time with today's presentation of the new CacheBox framework!

We had an even dozen show up and a pleasant surprise at the end. There's a poll at the end of these ColdFusionMeetup.com presentations so the people who attended can anonymously rate the presentation. It asks "was this information useful?" and the options range from 1-star (it was a waste of time) to 5-stars (yes, very much). In this case 50%, an even half of the guys who came gave me 5 stars. So I feel really good about the presentation. :) There is certainly still room for improvement in my presentation skills, but I think this is great progress.

I've also used some of the feedback from this presentation and updated the intro to the documentation for the CacheBox project to clarify the benefits of using it.

Here's the presentation recording for anyone who missed it: https://admin.na3.acrobat.com/_a204547676/p26212200/

Comments
Brad Wood's Gravatar Thanks for posting the recording. I wanted to attend the meeting, but it was at a time when I was still at work. I'll check it out later to see how you did! :)
# Posted By Brad Wood | 10/23/09 1:12 AM
ike's Gravatar Thanks Brad! :)
# Posted By ike | 10/23/09 3:08 PM
Brad Wood's Gravatar Hey Ike, I just listened and like the presentation. I think you have some pretty good ideas. Since I didn't get to chime in live, do you mind if I offer a couple questions and critiques here?

Thanks!
# Posted By Brad Wood | 10/24/09 1:50 PM
ike's Gravatar Hey thanks Brad! Yes absolutely, project contribution is good and so is critique on my presentation. I'm always looking for ways to improve, so whatever you've got, I'm all ears. :)
# Posted By ike | 10/24/09 3:36 PM
Brad Wood's Gravatar I'll preface my comments with the fact that I have virtually no presenting experience, so most of this comes from me as a participant.

Firstly I liked your Power Point slides. They were professional and thought-out. That being said, you spent way too much time on them. I think that's why people were getting antsy because you spent 40 minutes before you got to any code samples.

I loved the demo of the admin screens. In fact you could have spent a little more time describing some of those screens and I wouldn't have minded.

I personally would have like a bit more code samples. (with as little extranious code as possible) When you brought up the code I wasn't sure if I was looking at CacheBox code or just an example of how to call it. A quick overview of the API might be a nice addition just to familiarize people with the available methods they can call prior to seeing the code.

I think the different eviction policies are pretty cool. (For the record, ColdBox does come with a handle of different policies you can choose from as well. You MIGHT be able to change them on the fly, but I'd have to try.) I would LOVE to find out more about the auto eviction policy that uses memory and usage metrics to decide how to evict. That sounds awesome.

I wouldn't worry too much about having to explain the benefits of CacheBox over ColdBox, Transfer, and ColdSpring cache. I understood that perfectly well and I'm not sure why it seemed to be a sticking point.

What I WOULD like to know is exactly what code modifications are necessary to get all three of those using CacheBox. Especially since I have a ColdBox app that uses the ColdBox cache a lot already and I wouldn't want to have to change all my code to simply switch over and use CacheBox for a while. Can I simply proxy all the ColdBox cache calls over to CacheBox without the app knowing?

Overall, the preso was really good. The only other thing I would change is the pacing and "Umm's..". (I'm HORRIBLE at that and my wife accuses be of belaboring my points too) I actually told Charlie I would be interested in doing a cfmeetup preso sometime soon. I think I will use notes to keep me on track and kitchen timer to keep things moving. :)

Thanks for letting me give you feedback-- take it all with a grain of salt as it's just my take!
# Posted By Brad Wood | 10/25/09 12:40 AM
ike's Gravatar Hey thanks Brad, much appreciated! :)

I consider feedback from the perspective of participants actually quite valuable, because that means your thoughts on the presentation are going to be less about the formal ins and outs of presenting and more about what's actually going on in your mind while you're listening to me speak. And that's really the most important issue, beyond everything else, that I'm able to connect with you as an audience member and give you the information you're hoping to get out of the presentation. :)

I think you're right about spending too long on the slides. I don't think it was 40, I think it was closer to 30, but the specific amount of time isn't really all that important. The issue is that I think people were more interested in the code and I do tend to get caught up in details, which is an issue I'm working on.

I'm glad you enjoyed the admin screens demo. I actually felt like I belabored the point a bit when I described the decision to use "N minutes" instead of a timestamp in the display. Personally I feel it's an important point, but it's the sort of thing that a lot of people I think wouldn't notice, or might not understand at first why it's an important point. And I nearly started showing how the cluster-management interface works, but decided against doing that because most of us don't need it and because the need for extra security there makes it not the easiest interface to understand.

The auto eviction policy is one of the areas where I would like to get more input -- I'll try and post a blog or something in the not too distant future with a little more detail on how they work right now and what kind of contributions I think we need to really tighten up that feature, as it's fairly nacent right now.

You're right that ColdBox includes several different eviction policies. And checking the ColdBox caching guide again, ColdBox does support both custom eviction policies and hot-swapping eviction-policies at run time. http://ortus.svnrepository.com/coldbox/trac.cgi/wi... And it keeps a couple different kinds of cache side-by-side. These were all cool features from ColdBox that are also found in CacheBox. Where CacheBox extends these ideas in particular is in adding custom and hot-swappable storage types (the current ColdBox implementation only stores in application variables) and by managing storage for multiple applications, the server and the cluster all side-by-side, whereas ColdBox only manages cache for the current application.

Re: the sticking point over explaining the benefits over separate cache systems for different frameworks. It seems to me after finishing the presentation that it was mostly an issue that Henry in particular is just comfortable with ColdBox for all his work and since he's never (or maybe rarely) personally worked on any caching code he hasn't really "experienced the pain" that this is designed to alleviate. I don't think it's anything particularly different than how some folks don't see the benefit of ColdSpring if they haven't worked on any larger applications for example, because they've not experienced the pain of hand-managing lots of object dependencies. I think there's always going to be a few people who fall in that category for any given project, so although it may have been a sticking point while trying to explain it for Henry, I don't think it will be a barrier to entry for the project as a whole. 5 of 10 of the people who came gave the presentation 5 stars, so I think that's a good indication that people mostly approve of the project. :) But in the midst of a presentation of course I want to make a best effort to explain it to anyone who's asking of course, because I don't want to seem dismissive.

re: code modifications - there's sample code in the distribution for ColdBox although not for ColdSpring or Transfer (yet). When I was looking at the code for ColdBox unfortunately I didn't see any handy hooks in the code that might have allowed me to swap out the default cachemanager object for a new one, and so I resorted to overwriting one of the original ColdBox templates, which I hate doing. So I don't *think* you can proxy the cache without ColdBox knowing. Maybe an upcoming version of ColdBox will provide an XML config option. I'll see what I can do about adding ColdSpring and Transfer to the samples in the CacheBox distribution.

A friend of mine recommended that I find a kitchen timer with a light on the front instead of an alarm, that way the alarm sound won't cross over onto the presentation. :)

Anyway, you've given me a lot of great feedback here, thanks. And now I've got a few new items on my to do list also. :)
# Posted By ike | 10/25/09 4:45 PM
ike's Gravatar Oh I neglected to respond to the suggestion of the API overview -- yes, I think you're right and oddly enough, that's something I've done with previous presentations, but somehow overlooked on this one. I think I'm going to try and put together a Captivate preso with some of your feedback here that will be shorter (maybe 20 minutes) and touch on the project highlights with a clearer code sample.
# Posted By ike | 10/25/09 5:01 PM
Brad Wood's Gravatar > So I don't *think* you can proxy the cache without ColdBox knowing

I know Luis is working on breaking out the ColdBox cache into a stand-alone app, so I'm hoping he will address that by allowing us to specify our own cache manager with a CFC that implements the appropriate API. I think he was going to call his CacheBox, but you beat him to that punch. :)
# Posted By Brad Wood | 10/26/09 12:06 AM
ike's Gravatar > I think he was going to call his CacheBox, but you beat him to that punch. :)

Ha! I suppose this would be where I might employ the old "great minds think alike" saw. ;)

I just thought it was a catchy name that lets you know what it does right away, not to mention the obvious play on the phrase "cash box" (otherwise known as a register). That kind of word-association helps it stick in people's memory, at least for those of us who speak English as our first language. :)
# Posted By ike | 10/26/09 1:01 AM
BlogCFC was created by Raymond Camden. This blog is running version 5.5.006. | Protected by Akismet | Blog with WordPress