I’m John C Bland II

Husband, Father, Tech Author, Deacon.
Founder ofย Katapult Media, and full-stack polyglot developer.
Political Free Agents Podcast Host.

I create. I launch.

YouTube Channel

I post regular fun on YouTube like me playing the bass and anything else I find fun.ย 

Get Something Built

All project work goes through Katapult Media. Business is open. Let’s chat.

Should CF be free? Open source?

The long debate is back. So many argue the affirmative and are absolutely crazed over the argument. I’m not going to jump into it this time around. I would LOVE to see Standard offered for free but I won’t cry if I have to buy the next upgrade to CF9.

So, my post comes from Ben’s dissertation (hehe) he “just posted on his blog”:https://www.forta.com/blog/index.cfm/2008/6/2/The-ColdFusion-Pricing-Debate-Revisited. I’m turning comments off on this post because I don’t want to steal any thunder from Ben’s overall reason for posting (research into the discussion for Adobe’s planning purposes; or that’s what I got from the post).

AS3: FLVPlayback SMIL Support

This is just a little piece of code for using a SMIL file as the source of the FLVPlayback component in Flash. This is AS3 code but it is pretty much the same for AS2.

bq. import fl.video.FLVPlayback;

var player:FLVPlayback = new FLVPlayback();
addChild(player);

player.source = “my.smil”;

“For more information on SMIL read LiveDocs”:https://livedocs.adobe.com/flash/9.0/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00000588.html.

Tonight’s CFUG Preso Connect URL

Join me tonight for my “ColdFusion 8 .NET Integration preso”:https://www.johncblandii.com/2008/05/528-preso-for-azcfug-cf8-net-i.html on Adobe Connect: “https://adobechats.adobe.acrobat.com/azcfugmaycf8dotnet/”:https://adobechats.adobe.acrobat.com/azcfugmaycf8dotnet/.

See you there.

Speaking Schedule: UG and Code Camp this week

Just a quick reminder about my engagements this week:

Tomorrow Night (5/27/2008) I’m speaking at the “Phoenix ColdFusion Users Group meeting”:https://www.johncblandii.com/2008/05/528-preso-for-azcfug-cf8-net-i.html.

Saturday (5/31/2007) I’m speaking at the “Desert Code Camp”:https://www.desertcodecamp.com/ conference here in Phoenix. The sessions are “Adobe AIR Offline with LiveCycle Data Services ES 2.6”:https://www.desertcodecamp.com/signUp.aspx?session=414, “ColdFusion 8 .NET Integration”:https://www.desertcodecamp.com/signUp.aspx?session=413, and “1 code library, 2 apps (Web & Desktop)”:https://www.desertcodecamp.com/signUp.aspx?session=415.

Hope to see you there.

InsideRIA.com Contributor

You can see my mugshot on the “Contributor’s page of InsideRIA.com”:https://www.insideria.com/contributors.html. My latest article will be published sometime in the next month or so. I look forward to writing more for InsideRIA. “Rich”:https://blog.everythingflex.com/ is a cool dude and an easy editor to work with.

Just an FYI for now. More to come when the article publishes.

ColdFusion 8.0.1 Cumulative Hotfix (chf8010001): cftooltip Fixed!!

It is cool to see “a bug you reported”:https://www.johncblandii.com/2008/04/coldfusion-801-cftooltip-is-br.html fixed. ๐Ÿ™‚

Grab the “hotfix here”:https://kb.adobe.com/selfservice/viewContent.do?externalId=kb403622&sliceId=1.

Thanks to “Ray for blogging the hotfix release”:https://www.coldfusionjedi.com/index.cfm/2008/5/17/Did-you-know-a-hot-fix-for-ColdFusion-was-released-this-week because I had no idea one was released.

I don’t like frameworks but I love Mate!

Some people may want to flame me for not liking frameworks but keep an open mind while I briefly explain.

**Why I don’t like frameworks**
Frameworks are great for getting from 0 to 60 really fast, most of the time. They take care of redundant tasks for you by providing code to manage those tasks. If this is true, and I believe it is, then why don’t I like them?

The majority of the frameworks out there add a bunch of extra junk you don’t need or won’t always use. Sometimes they have weird configurations and approaches. Most times the only thing it provides is a common code-base a new developer can jump in and be productive because they already know the chosen framework. If the latter is the benefit, give me a few days with the new developer and I’ll get them up to speed and productive.

I won’t spend much time here because this isn’t really what my post is about but the truth is I like to home-roll my own “framework”. There is absolutely nothing wrong with you not using a framework…nothing AT ALL. (“Maxim Porges has an entire preso”:https://maximporges.blogspot.com/2008/05/cfobjective-2008-presentation-materials.html he did, and I liked, at cf.Objective()) You choose what design patterns you want to implement and have at it. This is my preference regardless of language except PHP because “CodeIgniter”:https://www.codeigniter.com makes PHP fun. “Spring”:https://springframework.org makes Java a lot cleaner for me as well but those are about the only two. Well…enter “Mate”:https://mate.asfusion.com.

**Mate** (mah-tay)
I talked about “Laura’s preso at cf.Objective() in another post”:https://www.johncblandii.com/2008/05/cfobjective-2008-review-cf8-ne.html and due to my excitement I instantly wanted to see what it was about. Mate is “presently in an Alpha stage”:https://www.asfusion.com/blog/entry/mate-flex-framework-in-public-alpha but feels like a v1.

The event handling is what I longed for my own custom code-base to include (namely the one I built at “Limelight”:https://www.llnw.com) but never had the time to explore it. Mate is a gem in this area. Simply let your events bubble, setup “EventHandlers”:https://mate.asfusion.com/page/documentation/tags/eventhandlers (to do any number of tasks; ex – call a service, set a value on a class, call a method on a class, dispatch another event, etc) for the event(s), and you’re good to go. You could stop there, I have so far, and be pleased with Mate.

The joy is being able to dispatch an event 20 levels into your UI and without setting a globally available property/calling a globally available method (ie – ModelLocator, etc) you can have another view/component receive an update regardless of the location in your app (direct ancestor or otherwise). It is really nice.

Now, another thing I don’t like about frameworks that Mate solves is the majority of the time your app is 100% geared to **that** framework. Mate doesn’t force you to extend any specific classes, unless you want to, so you could strip Mate from your app and merely have to rework your event handling and maybe a few other things, pending how deep you got with things.

I absolutely have enjoyed using it. Personally I am building an AIR app with it and at “Limelight”:https://www.llnw.com I’m redoing a presently built Flash 8 app in Flex w/ Mate. In 3 days of development (mind you, a little in the morning and at night including learning Mate) I have my personal app in a clickable beta and not with dummy code. It is 100% final app code already at the place to tie in data and be ready for an alpha build. The app at “Limelight”:https://www.llnw.com has only had about 3 hours of work on it and is almost in the same state.

Kudos to “Laura and Nahuel of AsFusion”:https://www.asfusion. You have changed my (Flex dev) life.

New Pages on blog

I didn’t realize my MT template didn’t have a navigation for the pages I had created. So, they are there now. The column spacing at the top is weird but whatever. ๐Ÿ™‚

I’ll add some more here soon.

ColdFusion 9 Feature Request: Ext JS Only

I spoke with Delmore and Adam Lehman this weekend about the use of multiple javascript libraries. Ext 1.1 didn’t have everything Ext 2.0 has so they had use multiple libraries. Makes sense.

For CF9…PLEASE GET RID OF YUI! The UI components are absolutely flakey. I’ve been able to reproduce tons of issues with _cflayout_ tabs (I mean really horrible one’s; haven’t spent time debugging the JS though) and _cftooltip_ (“fix here”:https://www.johncblandii.com/2008/04/coldfusion-801-cftooltip-is-br.html).

So…no code suggestions or anything…just please nix YUI and fully integrate Ext 2 or whatever the current version is when CF9 comes out.

ColdFusion 9 Feature Request: cfquery resultType

This is one I really want to see happen as it is HIGHLY useful, at least to me.

**Idea**
When querying a database I want to return a query but a query of a cfc instances (a value object [or bean…pending your terminology]). I don’t want to return an Array of Structs though.

**Code Proposal**
On _cfquery_, add a _resultType_ attribute. This attribute would take a path to a CFC. The _resultType_ CFC should be nothing more than a value object (bean) based on the spec required by Adobe.

**Code Example **
[cfquery.cfm]
<cfquery name=”mydata” resultType=”cfcs.Product”>
SELECT productID, name
FROM products
</cfquery>

<cfoutput>
#mydata.getProductName()[1]#
</cfoutput>

[cfcs/Product.cfc]
<cfcomponent>
<cfscript>
variables.productID = 0;
variables.name = “”;
</cfscript>

<cffunction name=”init” access=”public” returntype=”string”>
<cfreturn this />
</cffunction>

<cffunction name=”getProductID” access=”public” returntype=”numeric”>
<cfreturn variables.productID />
</cffunction>

<cffunction name=”setProductID” access=”public” returntype=”void”>
<cfargument name=”productID” type=”numeric” required=”yes” />
<cfset variables.productID = arguments.productID />
</cffunction>

<cffunction name=”getName” access=”public” returntype=”string”>
<cfreturn variables.name />
</cffunction>

<cffunction name=”setName” access=”public” returntype=”void”>
<cfargument name=”name” type=”numeric” required=”yes” />
<cfset variables.name = arguments.name />
</cffunction>

<cffunction name=”getDisplayName” access=”public” returntype=”string”>
<cfreturn variables.name & ” (” & variables.productID & “)” />
</cffunction>
</cfcomponent>

**Time Saving Tip**
This could be annoying to some (having to write extra code) but a query would still be a query if you didn’t specify the _resultType_. You also could use _onMissingMethod_ to get/set your variables instead of writing every single one of the getters/setters. Another option is to use or write a code generator.

Let’s go Adobe…what’cha think?

Domino’s Pizza Tracker

I saw this online and thought it was pretty clever as well as useful.

Monday I ordered pizza from “Domino’s Pizza”:https://www.dominos.com/ online. I finished my order and it went to the normal confirmation page. I was on another tab while it completed the order and I saw the tab title change to “Order Confirmation” so I ALMOST did a ctrl+tab (to go to the tab) then a ctrl+w (to close it). That was my initial desire but when I went to the tab I saw a lot of color which made me look twice and pause. What I saw was pretty interesting.

DominosPizzaTracker.JPG

The image above shows the current status of my pizza order as well as a message letting me know who is working on my pizza. The FACT-O-MATIC widget slides in different facts here/there to keep me interested while my order is processed.

I thought this was very clever and have been waiting for a long time to see more restaurants integrate their in-store system with their web site.

Go ahead…order some pizza from Domino’s and take a looksy…I’m sure your inner-geek will like it too. ๐Ÿ˜‰

PS – It’s built on the Flash Platform. ๐Ÿ˜‰

5/28 Preso for AZCFUG: CF8 .NET Integration

Alan, manager of the Phoenix ColdFusion User Group, asked me to give my cf.Objective() preso for the UG. I happily accepted. ๐Ÿ™‚ So, here are the details.

When: May 28, 2008 @ 6:30
What: CF8 .NET Integration
Where: “UAT”:https://tinyurl.com/6lulu4 (possibly via Adobe Connect as well but we’ll see)

Description:
ColdFusion 8 adds a hot new level of .NET integration allowing ColdFusion developers access to the .NET Framework. Learn how to integrate ColdFusion 8 and the .NET Framework regardless of previous .NET knowledge.

See you there.

Adobe Feeds

I try to stay away from the typical “Person X posted about Subject Y” posts but this seems relevant.

So…here goes…”Ben just posted about Adobe Feeds”:https://www.forta.com/blog/index.cfm/2008/5/5/Goodbye-MXNA-Hello-Feeds. There…you have the big news. ๐Ÿ™‚ I, for one, like the change in URL/name.

“Check it out here”:https://feeds.adobe.com/.