Speaking at Bacfug -- Intro to CFCs

Hi Bay Area CF-ers --

I'll be speaking at the Bay Area ColdFusion Users Group on April 16th, giving my talk on "Introduction to CFCs". I'm probably going to update it with some content from my "Intermediate Uses of CFCs" slide deck but essentially, the idea is, if you've never used CFCs before, and don't have an object-oriented background, then this presentation will hopefully help you get to the "next step"!

There's not much info on the Bacfug page yet -- that's my fault. I need to send Sean an outline, which is still on my "todo" list for later tonight.

...and no, this is not an April Fool's joke! :)

-nolan

To Framework, or Not To Framework? It depends!

I just responded to a post over on Alagad.com about using "homegrown" frameworks vs. using "regular" frameworks, and my comment quickly became a catalyst for a blog post of my own on that same topic.

Frameworks are a pretty common holy war these days. The phrases "always use frameworks!", and "which framework is best?" are both seen pretty regularly on blogs, message boards, or overheard at various user group meetings.

As a contractor, I don't always get to determine the requirements, or time lines, or technology stack that I have to be responsible for. And as such, I sometimes need to make difficult decisions.

[More]

ColdFusion 9 Wish List

Nothing really "new" here. I've been posting my "CF9 WishList" thoughts on various other blogs, and decided I'd prefer to start compiling my list here on my own blog. The list as it stands currently...

[More]

Overloaded functions in C++

My teammate and I just spent a couple hours debugging an overloaded function:

We had a method foo( int num ) that was called passed a (char*):

foo( (char*)"test" );

...yet the integer version of the method was still being called, and quite happily at that! Huh!? It turned out to be the same issue noted here:

Here's the mess you're in: if Base declares a member function f(double x), and Derived declares a member function f(char c) (same name but different parameter types and/or constness), then the Base f(double x) is "hidden" rather than "overloaded" or "overridden" (even if the Base f(double x) is virtual).

Alas, my compiler doesn't like the noted "using" syntax, so I have to go about solving things the "long way" (either re-defining all the methods in my derived class, or renaming the derived methods so overloading no longer happens).

I can't believe I've never run into this "feature" of C++ before! And I can't believe this is how they chose to implement things! :)

It seems to me that if the method has a unique signature that's not redefined in the derived class, the compiler should happily look in the base class for that implementation. If I have foo(char) in my base class, but happen to have a redefined foo(int) in the derived class...why should it care? Assuming the data is always cast to the correct type, I fail to see why C++ requires we go through all this extra work.

If anyone can offer more insight, I'm very curious as to why C++ is wired this way.

--n

Delving (back) into C++

One of my main projects did a pretty big 180 last week. After demoing some functionality for a potential customer, the customer informed us that they'd prefer a command line tool over a web app (for use within various scripts and batch files they're running).

So for the next few months, I'll be switching gears and diving back into C++ work. It's been a while since I've worked on anything substantial in C++. This will definitely be a challenge for me over the next few months, getting (back) up to speed on the Boost library, and various other goodies.

Fortunately I have a few ColdFusion projects still in the works to help balance things out, and keep me sane. :)

Tuesday night's Saccfug meeting

Thanks to everyone that came to the Saccfug meeting Tuesday night! My "Intermediate Uses of CFCs" preso seemed to go over quite well!

Admittedly I was worried about it; some work chaos happened and I had to make an unexpected trip out of town for the 6 days prior, coming home only a few hours before the meeting began, so things weren't as dialed as I would have liked, but all the feedback I received was very positive. I suppose I am indeed my own worst critic. :)

Some folks were asking for the code samples. You can get a ZIP of the source code here, and the slides are available here.

I'll set up a more proper section for all the presentations I've done shortly. Hopefully for now this will suffice.

Whenever I do a presentation on a more "introductory" topic like this, we seem to have a really good amount of people show up. I think there are a lot of programmers out there that aren't quiet ready to use frameworks (or other complex OO ideas), but they do want to learn. Offering presentations to help bridge the gap seems to be of great interest (at least around Sacramento).

Thanks again!

Contracting and mix CDs.

When I started my professional career, one of my first bosses was a woman named Laura. She helped me move from doing phone tech support, into the Development department and gave me my first shot programming video games in their "kids entertainment" division. Laura and a couple of my team members became some of my first mentors, and were extremely helpful in me furthering my career. Over the years, I've made other associates that were also extremely helpful to me, or were just all around nice folks with whom I wanted to remain in contact.

Each year in December, I used to send holiday cards, much like a lot of people do. A few years ago I switched from cards to "holiday mix CDs" -- I compile a CD of songs that came out during that calendar year, print up covers and send them off to my "Christmas card list", including these associates from previous employment (as well as some family members and fellow music junkie friends of mine).

At first, I did it just because a) I'm a huge music nut and b) these were more fun than sending traditional cards, while still having a "personal touch" to them. Over the years I've realized that it's having another benefit as well: people REMEMBER these CDs! Pretty much year round, when I run into a business associate at a trade show, meeting, bar, whatever, I'll often hear "hey, thanks again for that mix CD!"...sometimes as far after the holidays as May or June! It's apparently more memorable than I had realized when first making them. Let's face it: nobody says "thanks for that holiday card" in May or June! :)

Several times now, it's had another benefit: these associates call me for consulting work! In fact it happened this morning: an old contact of mine that I haven't sync'd up with in ages (but remains on my "holiday mix CD list") shot me an email saying he needs a ColdFusion contractor for an upcoming project. One 5-minute phone call later, and I got the contract. :)

I'm convinced that these CDs help keep me on the list of "possible contacts" for work, even with folks like this, that I haven't been able to touch bases with in a number of months (in this morning's case, it has been well over a year. ack!). I've gotten several offers for work from people on my "holiday CD list". One such offer turned into an amazing opportunity at a dotcom for, nearly two years of gainful employment.

It's too late for this holiday season, but for next year, my advice to the contractors out there is: send something to your business associates that a) includes your contact info and b) keeps you memorable.

--n

MacBook Pro and VMWare Fusion - First Impressions

So...I switched sides and bought a Macbook Pro. :)

My trusty-but-slightly-underpowered Dell Inspiron still does the job, but network connectivity has been weird with it lately. Plus the Mac came with Garage Band, and given my self-imposed-resolution to release SOMEthing w/ the band this year, I figure that'll be a huge plus too.

So far I'm even more impressed with VMWare Fusion than with VMWare Server (which I use on another Dev box). I suppose that should be expected, given that VMWare Fusion is $80 while VMWare Server is free. Windows XP Pro installed in just a few minutes! Somehow it seemed to install faster on this machine than on a native Windows box. Very surprising! Additionally, VMWare Fusion was kind enough to auto-install VMWare Tools on the guest OS, set my display settings to a useful combination, and it set up a network connection, all behind the scenes! Each of those items usually needs to be set manually when I'm using VMWare Server. This was definitely a step up in terms of usability.

Yesterday I took advantage of the sale at Macheist.com, and now have a few useful utilities to install as well.

Hopefully this will be the LAST hardware upgrade I have to make for a while! Since I had to spend money, I'm glad it was ended on such an exciting-geeky-note, and not replacing a failed hard drive or some such thing. :)

Last night's Bacfug / Flex 3 / AIR preso

Thanks to Sean and everyone else involved in putting together last night's Bacfug meeting.

Here are some notes I jotted down throughout the evening (I'm still looking for a good deal on a MacBook Pro so I can move into this century...anyone?).

  • Traffic was pure evil. It took two and a half hours to get down there last night! Phew! Fortunately I left early enough, and still managed to get to the meeting on time (though only barely).
  • Flex 3 pricing will be lower! Yay! $249 for standard and $699 for Professional. Upgrades are $99 and $299 respectively...which puts them well within reasonable. (It's interesting that Flex 3 went down in price, while CF8 went up. Hmmm.)
  • Why wasn't the parking garage open? It's pouring rain, there is a huge meeting, but the gate is down? It's usually up when I attend regular Bacfug meetings? (Fortunately I caught the parking attendant before she left and was able to get spot, rather than deal with street parking in the rain...but even the attendant didn't know anything about the meeting. They're usually up to date.)
  • Free food and drinks! Yay! This makes up for having to pay for parking. heh. :)
  • Better Mic/EQ for the speakers please. During the intro portion when folks were all taking turns making announcements, it was really hard to hear. A good chunk of this is probably because folks either a) don't know how to use a microphone or b) are self-conscious about hearing their own voice through the speakers (both of which are very common). May I suggest a mic with an extremely wide pickup pattern, and purchasing a limiter so the volume can be maxed out, while still maintaining even audio output? Just an idea.
  • Luke from...oh his company name is escaping me...mentioned his Sprouts project. Sounds like a neat idea, definitely worth checking out.
  • Flex 3 has some really sweet new features! As a general rule, I don't normally install beta software, so this was my first look at some of the upcoming goodies. Introductory Data Wizards and the Memory/Performance Profiling look especially swank!
  • Source code refactoring too! The ability to find all the references to a class/variable/function and rename them automagically. Also the ability to know how many instances of class Foo are currently in use. Sweet!
  • Got lots of useful info about AIR. I had initially thought it was closer to .NET and thus, didn't see it fitting into my upcoming projects. After last night's presentation, I think I have a better understanding of it...though I wouldn't mind another more technical "under the hood" discussion at some point. AIR somehow creates "native OS apps" when you run it (on Windows you can actually do "add/remove programs" and see them...unlike a "typical" Flash/Flex app. hmmm.). I'm still a bit fuzzy on how all of that works. Maybe I'll look into it more later on.
  • Also discovered SQLite (which is used in/with AIR somehow to provide off-line database support). Yet another new geeky thing to check out! :)

I was contemplating making the drive down for tonight's Silvafug meeting (I can't make my local NorCalFlex meeting this week...last minute band practice), but with the weather being so terrible, I fear the drive would be insane.

Thanks again guys!

What to do with old developer magazines

I've been in a very nostalgic mood lately. Listening to a lot of older music (Husker Du, old Slayer, old Green Day, Tom Waits...I even saw Doug E Fresh in concert on Thursday night), reading a ton about Apple II computers (and semi-considering buying an older box, maybe a Mac LC w/ the IIe card, or finding a 486 so I can play some of these 5.25" game discs that I still have laying around). Maybe I'm about to have a mid-life crisis! :)

Last week I cleaned some stuff out of my grandfather's tool shed storage unit, which included a big box of older programming magazines -- issues of Dr Dobbs, C++ Journal, Game Developer Magazine, and so on. Mostly these were from '98 or '99; while a ton of the content is obsolete now, I did find the occasional article that still holds some weight (i.e. things related to pure C++ language features, algorithms, etc). I'm thinking of tearing out the still relevant articles and putting them in a binder for later reference (the pack rat in me just can't throw things out!).

However I'm also curious what other folks are doing. Do you just chuck old dev mags after a certain time period? Scan the articles and dump them into SQL? Build a shrine to your previous coding efforts? :)

Please contribute any ideas you have, even if it's just to tell me I'm too much of a pack rat. :)

--n

More Entries

 
BlogCFC was created by Raymond Camden. This blog is running version 5.9.003. Contact Blog Owner