CFMU 1.0 Released
Dan Vega said: What version of ColdFusion are you using? If you are using 9 multi file uploads are pretty easy now ...
[More]
CFMU 1.0 Released
notthatbright said: Hi Dan,
Additionally this is what i get as output from flash
Error: Error #2014: Feature is not av...
[More]
CFMU 1.0 Released
notverybright said: Hi Dan,
I'm also having problems with the onComplete function. It seems it's failing and not genera...
[More]
Runners, I need your advice
Matt W said: Hey Dan,
I was in a similar boat about 4 years ago. I had been running here and there, doing a bit ...
[More]
Runners, I need your advice
Jon Dowdle said: I'm not a runner (so take this as you will) but a great intro into strength training is this book: S...
[More]
#1 by Kris Brixon on 3/21/08 - 12:02 PM
#2 by Dan Vega on 3/21/08 - 12:05 PM
#3 by Raul Riera on 3/21/08 - 12:08 PM
#4 by Nolan Erck on 3/21/08 - 12:22 PM
http://www.southofshasta.com/blog/index.cfm/2007/1...
...however (as you'll see by the comments in that blog post), nobody seems to have found a "real world" use for that. Partially this is due to the fact that each dynamically generated SWF creates a new, temporary (used only once?) SWF file. This makes using such a feature very limited; I can't use it for anything with dynamic data, without running the risk of filling the hard disk with hundreds of once-used SWF files, etc.
I'd love to build Flex SWFs on the fly, but it needs to be more "real world" applicable than it is in version 8. Perhaps some sort of client-side "proxy" SWF movie can exist that gets passed in-memory flex code (rather than yet another SWF on the disk being auto-generated). Maybe the new RSL functionality in Flex 3 could be extended and used in this fashion? So an entire "movie" isnt sent to the client, but a smaller RSL (or similar)file is passed to the "proxy movie" that then runs the SWF?
I realize something like this would probably have a performance hit to it. However I say "leave that to the developer to deal with". If I make the call that it's ok for my app to use this feature, then it's also my "fault" if the app is slow(er).
Hopefully that made some sense; thanks for your time. :)
-Nolan
#5 by Dan Vega on 3/21/08 - 12:25 PM
#6 by Pritesh on 3/21/08 - 12:25 PM
#7 by Matt Woodward on 3/21/08 - 12:54 PM
2. ability to instantiation cfcs from in-memory variables (iow, don't make me write to disk only to turn around and do create object from that concrete file)
3. built-in ORM capabilities, preferably Hibernate under the hood
4. flatten="true' attribute on cfpdfform when action="populate" and using the destination attribute
5. low on the list, but total cfscript support so I could, if I wanted to, write entirely in cfscript (I go back and forth on this but having the option would be nice)
6. support for creating a jar-like construct with cfcs
I'll stop there for now. ;-)
#8 by tony petruzzi on 3/21/08 - 1:00 PM
#9 by Dan Vega on 3/21/08 - 1:03 PM
#10 by Tony Petruzzi on 3/21/08 - 1:10 PM
The ability to declare multiple constructors.
fix cfdocument (border-collapse bug)
#11 by Tom Mollerus on 3/21/08 - 2:20 PM
#12 by RyanTJ on 3/21/08 - 2:29 PM
Support for more graph types, like the ones webCharts already supports.
Better enterprise tools like:
The ability to change a DSN login across multiple cf instances/servers at once.
#13 by Amy on 3/21/08 - 4:16 PM
#14 by Mark Flewelltn on 3/21/08 - 6:33 PM
#15 by Nolan Erck on 3/21/08 - 6:49 PM
CFPodCast -- a CF tag that will dynamically make a Flex SWF streaming MP3 "widget" on the client. Not a Flex widget -- I want to be able to customize it on the server (preload it with specific MP3s, change the colors, security settings, whatever) *before* it hits the client.
...and in regards to the cfvideo tag mentioned above, I'd love a "video" version of the cfPodCast tag I just described. Can we build a dynamic flex based streaming video "UI widget"? and have it start as CF code so various options can be controlled by the server first? (i.e. pre-load it with specific videos, etc).
thanks.
#16 by Mark Holton on 3/21/08 - 7:52 PM
** access CFC's via RELATIVE path. To be able to do something like:
<cfset cfcpath = "../models/foo.cfc">
<cfinvoke component="#cfcpath#" method="baz" data="#input_string#" returnvariable="sReturn" />
** a CF chaining construct. Similar to Array#each, Hash#each et al in Ruby (and even JS for that matter). I'll leave it up to the CF team determine how they want the chaining syntax to look in tags (maybe it's only accessible via cfscript).
** "built-in ORM capabilities, preferably Hibernate under the hood" ...I second that suggestion. Would be an asset. Very ActiveRecord-esque. Pick some of the base commonalities between Hibernate and ActiveRecord and start from there.
#17 by brett on 3/21/08 - 8:05 PM
2. charts..add funnel & pyramid types
3. More control over "automagically" inserted cf code, i.e for cfform, bundle js in tidy externals.
4. Built in support for dealing with undeliverable mail in the domino administrator.
5. Alerts for specific log events, generate an email /sms etc..
6. quicker support for latest version of os x.
7. support for full search friendly / simple URL's. e.g
/page.cfm?id=1 becomes /page/id/1
8. built in unit testing
9. Adobe to show more support for Open Source community developed projects
10. kill or upgrade the exchange area of the adobe website its not very useful.
11. add ability to send email via MS exchange tags (it will only become truly useful when this happens)
#18 by zac spitzer on 3/21/08 - 8:41 PM
2) adding a shorter alias tag for CFQUERYPARAM as well, something like CFBIND, it would really help the verboseness of using such lots of bound variables in SQL.
3) Correct error reporting for nested function calls. For example an error in buy.cfc in the following example dog.feed(shop.buy("dogfood",creditcard.offer() )) will often be reported in the wrong CFC or template
4) Support for generating a CFC which model's an XML schema..
ps: your blog lost my comment when it told me the captacha test was wrong, which it wasn't btw...
#19 by Mike Kelp on 3/22/08 - 2:33 AM
1) Allow us to specify case insensitivity with query of queries
2) Full support for inline structures
3) namespacing like cfimport prefixing at the application / server level so we could define cf tag libraries similar to java
4) Better return format support on cfc method calls (IE: automatically convert my results to whatever format the client requests and allow xml as one) This is a great feature that just needs to be filled out better.
5) Viewable examples in the CF documentation
6) Update support for tags like cfmail so they can handle secure connections
7) Give us user management for cfadmin in standard
8) E4X type xml support (makes dealing with XML a breeze)
#20 by David Ryan on 3/22/08 - 7:01 AM
#21 by Thomas Messier on 3/22/08 - 5:20 PM
<cfset config = [
{ first:'John', last:'Doe' },
{ first:'Paul', last:'White' }
] />
#22 by Dan Vega on 3/22/08 - 5:27 PM
http://www.forta.com/blog/index.cfm/2008/2/29/Impl...
#23 by Thomas Messier on 3/22/08 - 5:32 PM
#24 by Leon on 3/23/08 - 9:59 PM
1. Combo box in a flash cfgrid,
2. href in a flash cfgrid
#25 by Steve on 3/27/08 - 10:14 AM
Even better would be the ability to re-order the queue so that only xx number of messages to a certain domain (aka yahoo.com) per spool parsing would be sent.
#26 by David Boyer on 3/28/08 - 8:27 AM
Oh and my fave bug/non-feature...
Named arguments in scoped functions, so that variables.foo(bar = 'foobar') works since foo(bar = 'foobar') already works. Same goes for functions put in other scopes or inside structures. :)
#27 by todd sharp on 3/28/08 - 3:54 PM
#28 by todd sharp on 3/28/08 - 3:55 PM
#29 by Michael on 3/31/08 - 5:20 AM
- nested transactions (by name)
- handling empty elements in list functions (turn on/off)
- new CFARGUMENT attributes: CALLBY="reference|value", list="Yes|No" and "max, min, pattern" from CFPARAM
- CFCSV, CFGPS, CFCRAWLER, CFDOC, CFXLS, CFSKYPE/CFMESSENGER, CFCLUSTER, CFSOUND/CFCHAT/CFVOIP/CFTALK, CFVIDEO/CFTV, CFJSR170, CFAMF
- compare(arg1, arg2) for structs, arrays and even queries results in: 0=equal, 1=not equal, -1=arg2 extends arg1, having more keys/rows
- replace(string, sub, sub2 [, scope [, start [, end] ] ]) == scope: LAST / REST; start: default value is 1; end: -1 = len(string)
- find(sub, string [, start [, end [, scope] ] ] == start: default value is 1; end: -1 = len(string); scope: FIRST / LAST
- cluster features: clear memory caches for all, cfsharefile so file is in short time available on all servers
- A function to get current settings of certain tags; rule: if you can set something there must be a function to get information about it; examples: cfschedule jobs, cftransaction isolation level, CFSETTING enablecfoutputonly/showdebugoutput, CFERROR template...
- see below: useTag(), execTag()
- see below: tag defaults
especially I second the mentioned:
- Query-of-Queries to query any collection
- Named arguments in scoped functions, so I can make use of the super scope in cfc
== useTag(), execTag() ==
useTag(tag="cfqueryparam", innerCode="", attributecollection="#structX#", text="")
tt = useTag(tag='cfquery', attributecollection={name="qData", datasource=dsn},
innerCode = 'SELECT fieldlist
FROM tablename
WHERE columnanme LIKE #useTag(tag="cfqueryparam", attributecollection={value=searchstr, cfsqltype="CF_SQL_VARCHAR"} )#
');
execTag(tt);
This would make anything usable in CFSCRIPT and in EVALUATE()
and there is no need to make functions out of any tag in CF9.
useTag(tag="cfloop", attributecollection={from="1", to="10", index="iii"} innerCode=useTag(tag="cfset", text="t = iii") )
== tag defaults ==
Setting default attributes for tags (usually placed in 'Application.cfc') so you don't have to write always all attributes again and again.
<cftagdefault tag="cffile" action="READ">
<cfsettagdefault name="charset" value="iso-8859-1">
</cfdefault>
<cftagdefault tag="cffile" action="WRITE">
<cfsettagdefault name="mode" value="644">
</cfdefault>
<cftagdefault tag="cfquery">
<cfsettagdefault name="datasource" value="mydb">
</cfdefault>
<cftagdefault tag="cfhttp">
<cfsettagdefault name="proxyserver" value="127.0.0.1">
<cfsettagdefault name="proxyPort" value="9999">
</cfdefault>
example:
<cffile action="READ" usedefaults="yes" ...>
#30 by Ed on 4/7/08 - 8:34 PM
easier/assisted setup for debugging
#31 by Patrick on 5/8/08 - 7:28 AM
#32 by Adam Haskell on 5/12/08 - 9:21 PM
Unit testing packaged in is just silly since there are good frameworks out there for that already. Not to say there are not good ORM frameworks but there is a performance consideration here. On the unit testing note though code coverage, and other code analysis reports would be slick.
Not sure exactly how/if this would work but the ability to pass annotations down to the Java layer. As a usecase this might allow me to use Springs Secuirty framework in new ways by annotating my CFML methods.
#33 by Stephen Cassady on 5/13/08 - 3:15 AM
Seriously - strange support on CSS, that may or may not get overwritten, different CSS support in the Header and Footer sections, Header and Footer scaling against the Margin size. "bugs" as in needing extra documentation just to figure out what it's trying to, and what it's successfully doing in the render engine. Upgrade it to the most recent version of itext.
#34 by Gerald Guido on 5/13/08 - 9:51 AM
#35 by Mike Haggerty on 5/13/08 - 5:51 PM
#36 by Tobe Goldfinger on 6/29/08 - 1:10 PM
ie have CF embed into the generated pdf file the javascript necessary for the pdf to automatically print (client-side
#37 by David on 7/1/08 - 11:26 PM
i.e. When using cfgrid - CF could generate the table as HTML then add the EXTJS grid functionality rather than creating the grid all via JS code.
#38 by David on 7/1/08 - 11:33 PM
The ability to create a URL link using more than one column, i.e.:
<cfcgridcolumn name="type" header="Layer Type" />
<cfcgridcolumn name="name" header="Layer Name" href="http://anothersite.com/?name=#name#&type=#type...; />
If not then at least the ability to specific the URL param name of the value (rather than just 'CFGRIDKEY')
#39 by acer on 7/4/08 - 10:51 PM
#40 by Jim on 7/11/08 - 12:34 PM
#41 by Bilgehan Mara? on 8/3/08 - 11:41 AM
#42 by Tariq Ahmed on 8/8/08 - 4:31 PM
Ability to create restore points; so that if you mess up your CF installation you can revert back to that. Kinda like how Windows does it so that if you mess up the OS to the point of it not being bootable you can revert back to a previous collection of configuration.
#43 by Hussein Grant on 8/13/08 - 12:00 PM
This should be wrapped around multiple cfthrow tags and only when the last cfthrow is processed in that block, the process would abort and return an array collection of exceptions via “cfcatch.COLLECTION” variable to be handled in whatever way the developer sees fit.
<cfthrowcollection>
<cfif Not FirstName>
<cfthrow… />
</cfif>
<cfif Not LastName>
<cfthrow… />
</cfif>
</cfthrowcollection>
In many cases you want to be able to collect more than one exception at a time, especially when building service oriented components that need to validate certain incoming calls. Normally you would have to build a custom error collection mechanism and return the results back to the requestor via the request scope. I find this ungainly at times. I think this could be handled better via cfthrow which can return standard or custom error type messages that could then be parsed out fairly elegantly and sent to the client UI (Flex, Ajax, HTML) for friendlier error displaying.
Let’s say I had a series of checks on first and last name in my PersonService and these failed at any time, then the following would be triggered, collected and finally returned as a collection.
<cfthrow type=”ContactManager.Person.FirstName” message=”The First Name is required.” />
<cfthrow type=”ContactManager.Person.LastName” message=”The Last Name is required.” />
On the caller side inside my cftry and cfcatch tags I can parse out the messages base on type and return them to the client all at once or in whatever manner I wish. I think this would be a powerful and very useful extension of the cfthrow’s capabilities. The cfthrow as it is only allows the first occurrence to run, but with the help of a “cfthrowcollection” tag, I believe it will simply extend its usefulness and overall ability.
#44 by David Whiterod on 8/13/08 - 10:33 PM
* Ability for imageGetEXIFMetadata function to read extended EXIF fields (i.e. GPS lat./long. fields.
* ImageSetEXIFMetadata and ImageSetIPTCMetadata!
(see http://www.succor.co.uk/index.cfm/2007/8/15/CF8-Ge...)
* a greater set of DDX commands supported in CFPDF (even if these are only available in Enterprise to protect sales of LifeCycle) (eps. PDFsFromBookmarks DDX command)
* Allow CFZip to work with in-memory zip archives.
* An easy way to create REST services (mapping REST endpoints to CFC functions?) (i.e. http://myserver.com/rest/myservice/abc123 could be mapped to myservice.cfc, function=get (default), parameter=abc123)
Cheers
David
#45 by David Whiterod on 8/19/08 - 8:40 PM
An enhancement to Trim (and LTrim, RTrim) to take a character to trim off the ends as opposed to the current trim than only trims spaces. Ideally one could supply a character or list of characters to trim (the default would be spaces as it is currently).
The character(s) to trim would be the second argument so not to effect current usage.
Say you had a string with a few extra characters:
cfset sResult = Trim("<mytag>","<,>") -> returns "mytag"
The extended trim functions would work, as trim currently does, and only effect the end points of the string. So:
cfset sResult = Trim("<my<>ta>g>","<,>") -> returns "my<>ta>g"
and:
cfset sResult = Trim("<<<<mytag>>>>>>>","<,>") -> returns "mytag"
(We could also see RETrim function!)
cheers
David
#46 by Mehdi on 9/19/08 - 5:29 AM
That would be great if we can maintain HTTP Cookies session within CFHTTP.
Very usefull if you wish to do mashups that require authentification thru form mail and secure it within cookies.
Regards
Mehdi
#47 by bkel on 11/11/08 - 1:24 AM
#48 by bkel on 11/11/08 - 1:26 AM
#49 by Tim Parker on 12/10/08 - 10:00 PM
========
Allow better control over memory usage with queries. If I need to loop over every record in a huge recordset (and don't need random-access and don't need to back up)... let me say that up front so CF doesn't try to keep more than one record (or 'blocksize' records) in memory.
=========
Improved whitespace control. Even with whitespace control enabled in the CF administrator... too much junk whitespace still goes out. At least eliminate lines that contain nothing but whitespace.. and perhaps provide a CFSetting with some more options (like... trim every line)
=========
Any chance we can get some more useful timings in the CF debug information? It can get very difficult to parse out where the performance problem is when each module's timings aren't adjusted for the timings of the modules they call..
=========
Improve type detection to allow integer parameters to be passed to Java methods without JavaCast() - it seems more than a little silly that numbers (especially obvious integer values) are treated as Double and CF doesn't even look for 'int' in the method signatures...
=========
Provide an option to suppress (or complain about) SQL comments in CFQuery (i.e. throw a 'bad SQL' exception if the query contains an un-quoted comment). This would go a long way toward prevention of SQL injection attacks... along with...
Provide an option to suppress (or complain about) multiple SQL expressions (or, more exactly, un-quoted semicolons) in a CFQuery
Neither of these would be a complete substitute for diligent use of CFQueryParam, but there are cases where CFQueryParam isn't the answer - like if you want the 'order by' clause to be controlled from a form. You could write something like:
SELECT #Form.ColumnList#
FROM {tableName}
WHERE {conditions}
ORDER BY #Form.SortBy#
CFQueryParam helps in the 'WHERE' clause (and in 'VALUES' and 'SET' clauses for insert and update queries), but it doesn't help elsewhere.
Eliminating semicolons and SQL comments from the toolbox probably wouldn't eliminate SQL injection risks completely, but it would make the job more difficult...
=========
Some improvements in variable scoping could go a long way...
1) provide control (via a CFSetting, perhaps?) over which scopes get examined when resolving an unscoped variable name. Users could then tell CF that all un-scoped references are ONLY in 'variables' scope, saving the monsterous verbosity of putting 'variables.' on everything.
2) provide a [PASCAL-like] 'with' construct to temporarily push a scope onto the front of the list of searched scopes (similar to what CFLoop does with a query object).
3) provide a single 'input' scope containing the merger of 'form' and 'url' scopes.
4) provide an option to automatically 'var' all new variables in functions...
4a) remove the requirement to 'var' everything at the top of a function...
5) provide an option to *REQUIRE* that all variables are declared (via 'var' or some other construct)
===
And a few other things for those of us who aren't just returning stuff to browsers...
Provide a way to catch or disable CFLocation.
Provide a way to catch CFAbort.
#50 by David Whiterod on 2/9/09 - 9:20 PM
ParseDateTimeString(<string containing date/time>, <mask>)
dateStart = ParseDateTimeString("2008:08:15 13:36:21", "yyyy:mm:dd HH:mm:ss")
dateEnd = ParseDateTimeString("01-Feb-2009 12:32 PM", "dd-mmm-yyyy hh:mm tt")
Function would use the same date and time mask as the date and time formatting functions.
#51 by Brett on 2/18/09 - 6:07 PM
#52 by Ben Rosamond on 3/5/09 - 5:24 PM
Ability to use argumentsCollection (ala cfinvoke) when calling system functions like left or rereplace
#53 by Miles on 5/13/09 - 2:18 AM
#54 by Adam Cameron on 10/30/09 - 11:52 PM
Just to repeat Miles' question just above @ comment #53... did this stuff get passed to Adobe?
I just did a check on the bugbase for the cfgridkey suggestion (because I'm currently dealing with the same issue) but drew a blank.
Was this blog post as far as this list got?
Cheers.
--
Adam