Friday, October 21, 2005

Good Morning Fuseboxers!

Well here I am Day 2, still alive. I am liking FLiP, and I just need practice prototyping, as I have never done any of that. However I strongly agree in not coding until all plans meet the approval of the client.

I completely hate wasting time and energy re-doing applications because:

1. client either did not know what they wanted
2. didn't know how to communicate their wants
3. They couldn't make up their mind as to what they wanted..

Fusebox i believe is a step in the right direction, but i agree i have to fully use it to really get my feet wet before i can say use/not-use.

However the setup for each app is a pain, but I am more than willing to give it a try.

Here are this morning's class notes...

----------------- Friday Morning - Day 2 Class Notes ------------
FLiP - has nothing to do with fusebox....software engineering lifecycle process...

FLiP - Fusebox LIfecycle Process

70% fail to meet their objectives
-budget, timeline, feature set

-fail to plan, plan to fail

1. Wireframe - Set diagrams
a.storyboards
2. Prototypes & Devnotes
a. Prototype is a fully html ui generated for each page/step - Full as if the application existed. Static HTML Version
b. Devnotes helps communicate what's done/missings for each prototyping
3. Code Planning
a. skilled application architect defines the fusedocs... fuses, fuseactions
4. Coding
a. write independent fuses, team or pair-coding
5. Unit Testing
6. Deployment & Integration

Design Interface First, then let the interface indicate the database design/queries
Then fusebox interfaces/controlls the two. and the interaction of..

Mail Reading Application
-Home Page with login interface underneath it
--Post to List based email messages interfaces
--- Link back to previous step
--Read Email Messages
--- Link back to previous step

P.S. Here is a really funny tie-in with the Minnesota Vikings. Denny Green is one of my favorite Business/NFL Books talked about "Plan your work and work your plan".

Planning is really essential, and sometimes under-looked by real small web shops.

More to come....

Thursday, October 20, 2005

Last Fusebox Update of the Day

We discussed a went thru the whole abstraction, mvc actual usage etc...

I need to read the Book by Jeff Peters Fusebox 4 & FLiP

You guys should have been here...

---------------Evening Class Notes ----------------------
Long argument about long vs tiny urls, I thinks i've hit a hot-button...

xfa = exit fuse actions, actions by which we exit

This brings up the question of what really makes a good framework?
1. Invisible and usability to the end user - They have no need to know what framework we use, except for what page they are at, and how to get to where they want to go.
2. Easy Setup & Install - Each time you create an application, if you have several hours just spent on setup, it makes no sense. What's better is a simpler or pre-packaged installer, so you can spend time planning & developing and not just more configuration.
3. Simplified workflow either working individually or on teams

Now abstraction has some interesting features, but if your not familiar with the framework and abstraction, it can be painful trying track down where variables and data are populated and created.

Afternoon Fusebox Class Update

So far, it's been rather educational. We're on the same path of wanting long term great applications, but there are some serious thoughts made into fusebox. I still feel it has major work to get to where it will both be more usable and scalable from the end-user perspective.

However also, there is a lot of setup involved as a new fuseboxer to create each application, if that can be simplified or automated that would really help.

However what this class is introducing me to, is the real necessity for frameworks or methodologies in coldfusion...

Jared is damn smart, I may ask a lot of stupid questions, because I want to get a full understand, and having only worked on 1 fusebox application, in terms of incorporating it in an existing non-fusebox application, it can be difficult to grasp.

I find that fusebox can be a great doorway to learning more of frameworks and getting more polish into your professional skill set.

I find that very vital...

Here are my afternoon class notes for my fellow classmates in MCTC. And we had a great lunch at Davanni's oh man that was filling.

------------------------Afternoon Class Notes --------------------------------
Installed CFMX 7
Installed Dreamweaver 8 YUCK!

SkeletalMVC
-Controller - xml files, configuration of all fuse actions????
-Model - CFM Files
-parsed - parses xmls and compiles directives and cfml template and executes
-plugins -fusebox plugins cfm templates, referrenced from the xml file
-view -interface files, form tags, table tags

-Controller Circuit main.prodlist
-Model query select * from tblProds - getallprodsqry.cfm
-View -/include dsp_prodlist.cfm Include layout.main.cfm name=body

layout.cfm looks like this
#body#

Saves whole app to the parsed folder -- Worth investigating

For each fusebox application, you have to reconfigure, drop skeletalMVC folder/files

precedenceFormOrUrl either do form or url grabbing...which takes precedence...
password - force fusebox to reload a file in the parsed folder
mode - development vs production

globalfuseactions
-preprocess
-postprocess

This is the configuration file fusebox.xml.cfm

Each application would get it's own configuration file.

enumerate what does that mean?

structkeyexists(variables,"dateTime")
-a symantic improvement

page contest

scope prioritization, scope variable searching...

page context level for each variable scope



1. Plan it out
2. Create model
3. Create views
4. Create XML behind two

Nifty circuit aliases, to reference functionality in different parts of the application

circuit access="public" vs access="internal"

internal mode is kind of interesting...

circuit.fuseactionname

Fusebox can be fun to play with, I am not sure about it's scalability or index.cfm?fuseaction issue, how it appears the developer does matter, and I am fine with that. If the two main issues are dealt with i am fine.

I am curious about the process of the compiling into parsed files...

Why not have the database do it's parsing of content and then in a stored procedure get the call of what content to display. Point being why not have the database do all the work instead of having coldfusion do it.

Controller gets the request and passes the work on to model then displays results via view.

use fusebox tags rarely unless necessary...

I think it is realistically possible to hide the links that go to the same page, either thru javascript, or we can have a link page creation process...

Where we loop thru each fuseaction and create a physical file for each that actually calls the fuseaction,but how does that deal with form or action pages. Unless it was done via a cfinclude.

Update FuseBox Class

I am actually quite impressed with the way Jared Rypka-Hauer of Continuum Media Group LLC are presenting this class.

There may be some things that I disagree with :)

But there is a solid agreement I feel we all have and that is to code ColdFusion Applications that are good for the long term.

If I die, how easy is it to fix, repair or modify the application(s) I created?

Well here are the notes from class so far.

Thanks for listening....

Frameworks? in general, what they are, what they provide
-What core code, actual files, pre-defined functionality. Procedural Framework
-Why
-When All the time...
-Metholodogy how to use the framework, built around the framework

Always see \index.cfm?fuseaction=guestbook.showform

guestbook is the circuit a collection of functions/actions
showform is the fuse that indicates what action to take

Hooks - plugins, pre-built actions, referenceable

Framework Definition
1. Sources
2. Methodology
3. Save Time
4. Communicate

MVC - Low Level to High Level. High Level Architecture Design Pattern.

Model
-Queries
-Logins
-File Access
-Webservice
-CFHTTP

View
-CFM Templates - "PODS"
-Navigational Includes
-Logo Header
-Date
-Content

Controller
-Send Messages To Model
-Getting or sending Data
-Gets Data --> View
-Sends Data <--- View

96% of stats are made up on the spot

Very streamlined makes you more efficient, that is reasonable and understandable.

The way you think matters as much as the way you work....

Implicit Invocation - Clean The Kitchen - Not requires a lot of description
-One high level command to many tasks
-Main.home - main circuit home fuseaction
-More of a global command to refer an implied set of tasks

Mach II - Implicit Invocation

OO vs Procedural

-object orientated
--Defining Entities
---Real World Object like user, blog entry, shopping cart
--What should those entities do?
--Should user object talk to database or just be a container
--Encapsulate - it know only it knows
--Inheritance yuck!!!!
--Data Centric
--Defining Representation
--Each object has a specific role and defining them can be better for long term development,
---okay that makes sense, now how do i figure how to translate what they're saying...

-Procedural
---Do this do this do this, logical
---Tasks vs from point a to point b

ColdSpring, Carton - Persistant Storage Mechanism

Instance Variables

Gateway Objects
DAO's

P.S. I am finding that my understanding of OO vs Procedural may be incorrect. While I do honestly see there is no standard for long term thinking in procedural programming, it is easier to think and put my head around it.

I think that would be a worthy goal, to find a middle place...

Thanks...

Let Fuseboxing Commence

Here i am, where is the alcohol or anesthetist to immunize me to this training...

Lol, just kidding...

Here I am a beautiful Minneapolis Morning, downtown, beautiful day.

A bit chilly outside, I have met Jared, Gary and a few other brave CFers that have decided to come down to MCTC and learn fusebox.

I am actually interested in learning, I am willing to give it an open shot, for 2 specific honest reasons...

1. If CF Shops are only hiring CF developers based on them knowing fusebox, then i have to adapt, i need a job like everyone else does.
2. I am curious about FLiP, as many of you know I am interested in developing better practices and life cycles to improve the quality and flow of work.

It does look interesting...

More to come...

The funny thing is when Jared came in with a CafePress box, I thought it was from that custom t-shirt site, and lol, I asked if the price of admission came with a free t-shirt...

Oh well I am trying to make the most of this...

I really do enjoy programming in ColdFusion, and I do want to be the best as I can be. Ever since I saw a few of the greats of the early CFUG...

What drives you to CF?

Have fun!