Workshop recording: Brian Rinaldi on Framework Code Generation

For those that couldn't make it, Brain Rinaldis presentation went really well. This is his first presentation on the generator. He covers how you can use the generator and how you can customise the code that it outputs. There are some good questions asked at the end as well. Transcript below.

To view the recording please click the link below

http://adobechats.adobe.acrobat.com/p23645091/

Chat log:

Tom Chiverton: powerpoint edit view
Brian Rinaldi: cool
Danlance: yup
Justice: we see it now
Bernie Dolan: Yes
Tom Chiverton: y
Russ Johnson: yup
will: yeah
Nick Tong 2: thumbs up
Aaron Roberson: how does the code look? text right size?
Aaron Roberson: nevermind
Russ Johnson: guinea pigs??
Bernie Dolan: No pressure
Nick Tong 2: www.bostoncfug.org
Dan Vega: work smarter not harder != lazy
Tom Chiverton: heh
Russ Johnson: nice tan
Josh Nathanson: bowling roolz
Tom Chiverton: what is limited in CF8 ?
Tom Chiverton: Ah, cool. I think I saw your bug report.
Tom Chiverton: CFML templates - fx:applause
Russ Johnson: yay!
Josh Nathanson: xsl is fugly
Nick Tong 2: very good!
Russ Johnson: thats worth a wishlist item !!! ;)
Nick Tong 2: Brians wish list: http://www.amazon.com/gp/registry/wishlist/1BL8G2FZM978/ref=cm_wl_rlist_go/104-6924467-7446335 ;)
Adrian Lynch: Me too!
Danlance: I do :/
Nick Tong 2: http://www.martinfowler.com/bliki/AnemicDomainModel.html
Josh Nathanson: which FB Russ?
Russ Johnson: yes
Josh Nathanson: thx
Russ Johnson: fb5
Russ Johnson: using coldspring as well
Josh Nathanson: will check that out
Russ Johnson: :0)
Tom Chiverton: Project bootstrap, not project wizard.
Russ Johnson: new design is great!
Aaron Roberson: Yes, logo looks great!
Tom Chiverton: Heh, curse of the demo
Justice: this type of code will really fly with the speed improvements in CF8, I cant wait =)
Tom Chiverton: it's already fairly fast on 7.
Russ Johnson: actually its quite fast on 7
Justice: oh, it wasnt my intent to say it was slow, but I saw some speed comparisons posted and CF8 does createObject orders of magnitude faster than CF7 =)
Tom Chiverton: Yeah, but it's faster than a fast thing, right :-\) ?
Russ Johnson: lol
Josh Nathanson: I notice some slowness when over 1000 or so objects
Aaron Roberson: On a performance note, why don't use use <cfscript/> for the default templates?
Nick Tong 2: thats true
Russ Johnson: the whole admin section of my skweegee app was built using illudium and my fb5 templates
Russ Johnson: very little custom coding
craig: php all the way
Russ Johnson: eewww
Josh Nathanson: I just Kobayashi'd thinking about php
Tom Chiverton: those nodes can be anything , right ?
craig: cold fusion is ok, but php is alot better, and more widely used
Aaron Roberson: Who let the hackler in?
craig: hackler?
Tom Chiverton: heckler
Aaron Roberson: Thanks Tom
Russ Johnson: yup
Tom Chiverton: see, that's why XSLT is a pain.
Peter: Do you have to escape? Can you not do CDATA blocks?
Aaron Roberson: This is not a CFML v. PHP preso. Save your heckling for another forum
Tom Chiverton: Can you use any string for the nodes in yac.xml ?
Tom Chiverton: not just 'dao'
Tom Chiverton: yeah
Tom Chiverton: Cool.
Tom Chiverton: Heh :-)
Russ Johnson: if you add nodes you just need a corresponding xsl file.. and you can control the naming of the generated file in the yac
Nick Tong 2: nice chat on his blog about it today
Nick Tong 2: TQL is very cool.
Tom Chiverton: What about generating many tables at once ?
Tom Chiverton: Cool.
Tom Chiverton: Saves wearing my mouse out.
Russ Johnson: Brian, any plans to add a filenamePrepend param to the yac like the filenameAppend?
Danlance: fusebox...
Russ Johnson: for customizing names of generated files
Danlance: dsp_
Russ Johnson: dsp_
Russ Johnson: SWEET
Russ Johnson: doing it now... thanks
Nick Tong 2: http://groups.google.com/group/cfcgenerator
will: will this b up 4 dwnload afta? my connection is laggy :(
Tom Chiverton: Nick's recording it, so I guess so.
Nick Tong 2: I'll post the recording link on http://cfFrameworks.com
will: thx
Dan Vega: did you steal the domain from warner bros?
Nick Tong 2: http://www.remotesynthesis.com/blog/index.cfm/2007/6/20/Objects-and-Composition-Part-3--Using-Transfer
Nick Tong 2: http://code.google.com/p/cfcgenerator/
Tom Chiverton: I hope to be able to post to the group a ColdSpring/Reactor AOP template.
Dan Vega: i missed that, when did you make the flex source available?
Dan Vega: sweet, thanks!
Tom Chiverton: So I guess you're happy if people post patches to add features ?
Tom Chiverton: Of course.
Nick Tong 2: what about domain-centric templates?
Nick Tong 2: yeah
Nick Tong 2: Fancy Bread ;)
Tom Chiverton: Any plans to allow templates to ask the GUI to display options, and get the value of those options into the generator ? Do you think that would even be much use ?
Tom Chiverton: For sure. I hate XSLT, even though I know it.
Nick Tong 2: found it here: http://groups.google.com/group/cfcgenerator/browse_thread/thread/a2db45989e3affe8 ;)
Aaron Roberson: after talking with Paul, I don't think his templates are complete
Tom Chiverton: Yeah - do you wan tlogging ?
Tom Chiverton: do you want reactor or transfer backend ?
Aaron Roberson: I think it would be nice to save a default file path
Tom Chiverton: OK, cool :-)
Tom Chiverton: I think I should. See you on the group.
Tom Chiverton: Uh huh. With you.
Aaron Roberson: Also, would be nice to have the option of defining a password in the config or get the prompt every time
Aaron Roberson: so you don't have to use the directory picker every time
Nick Tong 2: this is nicer - please keep it :)
Tom Chiverton: Complaints ? Really ? Could save the password in SharedObject(), fairly secure...
Aaron Roberson: support for both config or prompt would be cool
Dan Vega: you could read the config..if its empty prompt for it
Nick Tong 2: what about other CFM parser support?
Nick Tong 2: i.e. bluedragon
Justice: fwiw, thanks for making your code generator, its saved me a ton of typing in Transfer object definitions if nothing else =)
Tom Chiverton: Railo has remoting in 2.0 beta.
Aaron Roberson: I run all the code I generate on BlueDragon, but I use CF for actually generating the code
Tom Chiverton: Not tried it myself :-)
Chris Schmitz: hi everybody
Josh Nathanson: Yup the code generator got me over the hump to try OOP - I'll never go back
Russ Johnson: have you thought about allowing files to be saved in seperate directories? like perhaps using a filepath param in the yac to add onto the default path? that way cfc could be saved to a dir and display files could be saved to another.
Nick Tong 2: +1 - saves me a tun of time :)
Tom Chiverton: You'd have to trust the config I suppose.
Russ Johnson: all generated files have the same default path.
Aaron Roberson: Are you wanting to group your gateways into one directory and DAOs in another, etc.?
Adrian Lynch: Chat is still full screen
Russ Johnson: oh ok.. i will try that
Russ Johnson: makes sense
Russ Johnson: i was just thinking that each node could have its file path in the yac
Russ Johnson: no
Russ Johnson: just paths to be appended to the default path in the gui
Russ Johnson: i will post my thoughts to the group
Aaron Roberson: Russ, that may work if you were using the generator for one app, but then you would have to change for a different app
Aaron Roberson: I like Russ's idea of prepend tho'
Nick Tong 2: issue 44 - Russ you where quick ;)
Aaron Roberson: Thanks for the preso Brain! Good Job!
Russ Johnson: lol
Russ Johnson: thanks brian... good job!
Dan Vega: great job Brian!
Stephen: There is an extra space in the SVN URL on Google Code. Just to let you know.
Tom Chiverton: Cool. Many thanls. It was good !
Adrian Lynch: Cheers dude
Jim Priest: thanks - great preso
Nick Tong 2: thanks!!
Josh Nathanson: thx brian keep up the good work
Russ Johnson: thanks!
Chris Schmitz: sorry I missed the preso... are therr any plans to include some option to define table relations?
Jim Priest: certainly going to give it a go
Tom Chiverton: Cheers nick.
denny: great job Brian, gracias
Russ Johnson: thanks nick..
Aaron Roberson: I think the answer was no, chris
Brian Rinaldi: chris, yes there are plans but they are in the early stages
Brian Rinaldi: planning really
Aaron Roberson: oops, guess I'm wrong
Tom Chiverton: it's possible to get PK/FK info out of the DB, in theory...
Russ Johnson: brian is build 11 the latest and greatest?
Brian Rinaldi: yep
Russ Johnson: k
Josh Nathanson: it already gets PK correct?
Nick Tong 2: http://cfcgenerator.googlecode.com/files/cfcgenerator_build_11_2007-07-03.zip
Brian Rinaldi: it gets PK not foreign keys
Aaron Roberson: I thought you said you had not intentions of dealing with foreign keys?
Russ Johnson: gotta run...thanks again brian and nick
Brian Rinaldi: no intent to support foreign keys at this point..as I mentioned, I think they are the work of the devil
Brian Rinaldi: bye russ
Danlance: why?
Josh Nathanson: I can never get FK's to work quite right
Nick Tong 2: thanks for coming
Chris Schmitz: how about manually defining relations then?
Brian Rinaldi: right, so I plan on adding support for relations using the GUI
Danlance: why do you think FK's are work of the devil?
Tom Chiverton: Here's the URL about Railo 2.0 and remoting: http://www.railo.ch/blog/index.cfm/2007/2/8/Flash-remoting-in-Railo
Stephen (privately): Do you add presentations to CArehart.org?
Aaron Roberson: I look forward to hearing more about how you are considering going about defining relationships
Josh Nathanson: FK's so dangerous when cascading delete
Nick Tong 2 (privately): nope - please feel free to add :)
Aaron Roberson: Why have I never heard that cfscript no longer has any preformance benefits?
Brian Rinaldi: once you get into a large and complex db using forignn key constraints causes all kinds of complicated problems like I need to delete x *before* I delete y *before* I can delete z
Danlance: dont implement cascading delete
Tom Chiverton: Josh: Only dangerous if the gui didn't ask 'are you sure'.
Brian Rinaldi: but fks don't IMO actually offer much benefit ...just drawback
Danlance: Brian - the fact remains that probably you should delete x before y before z...
Brian Rinaldi: that is just my opinion
Josh Nathanson: if no cascading delete, what's the benefit of FK's
Tom Chiverton: Brian: Most DB's support cascace delete, don't they ? Or you can write a template to loop over all children if not.
Danlance: data integrity
Brian Rinaldi: yep. I get it. done a lot of db development personally
Jim Priest: Not to stray off topic but - Forta on CFSCRIPT: http://www.forta.com/blog/index.cfm?mode=entry&entry=A61BBAD0-3048-80A9-EF5046E6E3FB2CB5
Chris Schmitz: besides data integrity, cascading delete is a lot faster than manually deleting ;-)
Brian Rinaldi: I understand the argument from a data standpoint but I think in most cases the application can handle that
Aaron Roberson: Thanks Jim
Danlance: we use fk's extensively - and I've never used cascading delete... probably should look at it ...
Brian Rinaldi: yeah, but cascading deletes can also be dangerous if you aren't careful
Nick Tong 2: going to stop recording
Chris Schmitz: definitely dangerous id you don't watch out
Tom Chiverton: Brian: Oh, I agree.
Josh Nathanson: I guess I don't trust my db skillz enough to deal with FK's - tried it out but kept getting constraint erros
Tom Chiverton: But we're all good programmers, we'd never slip up :-)
Brian Rinaldi: I also don't like FKs for defining object relationships anyway
Brian Rinaldi: for instance, I would have to inspect 3 tables for each many to many relationship
Tom Chiverton: 3 ?
Danlance: left, right and join
Brian Rinaldi: yeah, 1 for objct x, one for linking table and one for object y
Tom Chiverton: Ahh... I blaime the wine.
Brian Rinaldi: just to get the nature fo the relationship
Danlance: but to implement a m:n relationship you need to access the 3 tables surely...
Danlance: at run time
Brian Rinaldi: anyway, the end result is, there is a solution coming and it won't be based upon FKs
Danlance: lol
Danlance: I look forward to it
Josh Nathanson: some sort of xml config?
Tom Chiverton: So you'll draw lines in the GUI ?
Josh Nathanson: ooh, gui would be cool
Danlance: have you come across a product called llblgen?
Brian Rinaldi: no idea...I have just been shooting around ideas lately
Danlance: www.llblgen.com
Brian Rinaldi: but I thought perhaps a window where you would draw lines from object x to y
Danlance: ORM / code generator for DOT NET...
Danlance: (commercial app)
Brian Rinaldi: I think someone sent me this the other day
Danlance: Very nicely implemented - GUI etc.
Nick Tong 2: maybe we can get adobe to pay you Brian ;)
Tom Chiverton: To do a GUI right, you'd have to be able to save the relations of (project X, template Y).
Brian Rinaldi: yeah, money would be nice :)
Brian Rinaldi: yep
Tom Chiverton: fame do you instead :-)
Brian Rinaldi: you would need to save projects...that's the idea
Chris Schmitz: or maybe we can lend a hand and contribute on one or another feature?
Nick Tong 2: i'm just waititng for the CafePress t-shirts ;)
Brian Rinaldi: definitely, I welcome anyone who wants to contribute
Brian Rinaldi: look for me on IM - brian.rinaldi@gmail.com
Tom Chiverton: Well, if it's far down the wish list, I was tempted to ask about adding multi-table support myself, as I claim to be a Flex developer.
Brian Rinaldi: not a bad idea nick
Chris Schmitz: don't have IM, but, I'll email you ;-)
Brian Rinaldi: ok
Tom Chiverton: I've joined the Google group already :-)
Josh Nathanson: I'd buy a t-shirt with the martian
Nick Tong 2: sadly i need to shoot off now and will have to close the meeting.
Josh Nathanson: Oddly I already have a t-shirt with the furry red monster who was owned by the Martian
Nick Tong 2: Thanks for your time all and thanks VERY much Brian for the preso!
Josh Nathanson: OK thanks Nick and Brian, Bye!
Tom Chiverton: K. See you all around, and thanks again to you both !
Brian Rinaldi: ok...thanks Nick...we can take the convos offline to the google group I hope
Chris Schmitz: thx guys


 
Comments (Comment Moderation is enabled. Your comment will not appear until approved.)