BlogBlogs.Com.Br

Creative Commons License

Powered by Blogger


 

Início | Literatura | Leituras | 5v | Tecnologia | Contato | Sobre
Precisa de ajuda para usar este web-site?
Avisos de atualização via:
Computador (feed) | E-mail

It take me some time to write about it as I wanted to read almost everything people wrote before. At the end of this article you'll find a lot of links to blogs and websites that I read before writing this.

First a note I took at the first sight of this news: it's very good for the CFML as a language and for the ColdFusion market overall. It can help developers to first learn CF, use it on their projects and renew the market around Adobe's (and New Atlanta's, see below) product.

Although I think it's good, I don't think the OS world will embrace CFML on the long run. They already have PHP and other options like Ruby so why? 'Cause CFML is so easy to program with? A lot of open source programmers I know thinks it is a problem, not an advantage.

But the situation may change a lot if - and only if - New Atlanta and Adobe put some effort on the OS option. Why Adobe, you may ask. Having an OS version to kick start with CFML is great for Adobe, specially if they don't have to OS ColdFusion (their own product) to achieve this.

They can sell a better and increased version, they can make the BDOS compatible with their own product, making sure that people who start with BDOS can "upgrade" to Adobe ColdFusion without a lot of work.

But, as people noted around the "blogosphere", the CFEclipse plugin didn't catch with the "ColdFusion OS community". Smith, another OS option to Adobe ColdFusion, didn't had a lot of developers jumping in and probably New Atlanta's BD will have not either. One can argue that it's about the lack of features - how can you expect people to contribute within something buggy and featureless? But that's not the excuse for CFEclipse, who is a great plugin. Adobe - and Macromedia, before - wasn't known for their efforts to help the community spread the word - even knowing that developers are always busy and active doing it for them.

The license adopted will be GPL - the same way MySQL does. If you want to distribute your software with BlueDragon, it'll have to be open source by GPL too. The .Net version will not be open sourced, only the J2EE - and for companies or individuals who doesn't can/want to share, there'll be another commercial license.

The announcement was made but the "real product" isn't there for people to mess with now - it'll be in June 2008. Now the links and comments on then:

New Atlanta's annoucement

www.dcooper.org
Damon Cooper makes a harsh comment on New Atlanta's announcement, claiming it is a "defeat" for Blue Dragon. As a lot of commenters on the topic, I don't plainly agree with him...

Interview with Vince Bonfanti
Mr. Bonfanti is president and co-founder of New Atlanta. In this excellent interview to Dan Wilson at ColdFusion Zone he speaks about the ways New Atlanta will be serving the OS version of Blue Dragon, the licensing and other interesting details. Worth the reading!

How to get involved with the Open Source version of BlueDragon

An Architect's View
Sean Corfield wisely makes a cautious comment on the announcement and I share his opinion: the future lies on the open source folk's acceptance of this new language.

ColdFusion Jedi
Raymond Camden's adds to the discussion but the real treasure is on the comments. Brian Swartzfager's and Gary F's comments about the hosting companies picking BD over Adobe ColdFusion (or allowing users to install it) could really change the face of CFML market over time. Great discussion!

Fusion Authority
Charlie Griefer takes another shot on the announcement and here I find someone who believes Adobe could weight in by open sourcing their Standard version of ColdFusion. I don't believe they'll go so far, but it would be an interesting move. Some CFML Standards Committee with Adobe and New Atlanta, and Railo and Smith joining on BDOS would be really amazing... and really change the CFML market around the globe.

Simon Whatley
This is a blogger that I learned to watch closely as he is a great article writer, but on this he only posted a quick note and pointed to...

Aarrgghh!!
By Terrence Ryan. After an opinion that I agree on - that the community will not see any "gains" with this, specially "right now", he aims at the "sides" opinion, believing that there would be two market views - the "free" vs "paid" solutions, betting Adobe will win with the paid one. I don't know if he is wrong, but I believe on the kick start with the OS/free solution then upgrading to a paid solution. It happens a lot with PHP? No. But it happens with MySQL and New Atlanta is acting like it so they can be successful. Let's see.

CFGigolô (in Portuguese)
The announce even make it on Brazilian blogging community, with Alex Hubner posting a single note telling how he thinks this is an important move for CFML community, specially here in Brazil where - it's true - it's not common to pay for a web language solution.

And that's it. Obviously we'll have to watch it over time to see what really happens, but the announce really caused a lot of fuss inside the community - don't know if outside too - and it has potential to change things. I'll be using BDOS when it becomes available and posting notes here.

Labels: , , , , ,

Leave a comment | Links to this text |

Well, I had an error report from a client of my ex-company. As I have an agreement with them to cover these situations I looked at it and thought "Oh no! The damn 'null null' error!".

So what was going on? Follow me:

I have a report that permits the client to find specific information about who receives referral fee over their contracts. So the client selects an user to search for and submits.

The ColdFusion template then search for referral fees this user receive in an referential table, which returns the contracts IDs. Then I search the contracts for details and loop over the contracts to mark which of them has already paid some referral to that user, do some formatting on the client's name and re-sort all data by paid, expiration date, finished date and then contract title.

To clarify, some code (I use "SELECT *" just for simplicity, don't do that on your code):

<cfquery datasource="dsn" name="qReferrals">
SELECT DISTINCT(contract_id) AS contract
FROM contract_referrals
WHERE user_id =
<cfqueryparam cfsqltype="cf_sql_integer" value="#form.user_id#" />
</cfquery>

<cfif qReferrals.recordCount>
<cfquery datasource="dsn" name="qContracts">
SELECT *,
0 AS paid,
'' AS clientName
FROM contract
WHERE contract_id IN
<cfqueryparam cfsqltype="cf_sql_integer" list="yes"
value="#valueList(qReferrals.contract)#" />
</cfquery>
</cfif>
So what the heck am I doing here? Well, I search for the referrals, verify if there is any, then I search for my contracts, creating two "to-be-filled" fields:
             0 AS paid,
'' AS clientName
I thought the first one (paid) was being created as a NUMBER, a INT or TINYINT, I really doesn't care - but a damn number. The second field doesn't matter for this example. Alright? Let's go on:
<cfloop query="qContracts">
<cfquery datasource="dsn" name="qPaid">
SELECT movement_id
FROM movement
WHERE contract_id = <cfqueryparam cfsqltype="cf_sql_integer"
value="#contract_id#" />
AND
movement_paid = 1
</cfquery>
<cfif qPaid.recordCount>
<cfset qContracts["paid"][currentRow] = 1 />
</cfif>
</cfloop>
Here I go through all the contracts found and search one by one for paid movements on the movement table. If I found one or more, I change the "paid" flag from 0 to 1. Pretty simple, uh?

Well, not all that simple. Let's see the final piece of code, the one that throws an error:
<cfquery dbtype="query" name="qContracts">
SELECT * FROM qContracts ORDER BY
paid, expirationDate, finishedAt, title
</cfquery>
Again, pretty simple. I'm just reordering the query, using a query of queries and the already filled field that I created within the first run of the query.

But this code generates a null null error. Why? I don't really know. The solution, for me, was to change the assigment of the "paid" field to string and then everything worked fine. I even tried to use another name for my final query (I thought: well, maybe CF is "coldfused" about the same name and overriding something), but it seems that the field creation above wasn't in a numeric type at all, so CF becomes all lost about the data type, returning the "null null" error. Here goes the final code:
<cfquery datasource="dsn" name="qReferrals">
SELECT DISTINCT(contract_id) AS contract
FROM contract_referrals
WHERE user_id =
<cfqueryparam cfsqltype="cf_sql_integer" value="#form.user_id#" />
</cfquery>

<cfif qReferrals.recordCount>
<cfquery datasource="dsn" name="qContracts">
SELECT *,
'0' AS paid,
'' AS clientName
FROM contract
WHERE contract_id IN
<cfqueryparam cfsqltype="cf_sql_integer" list="yes"
value="#valueList(qReferrals.contract)#" />
</cfquery>
</cfif>
<cfloop query="qContracts">
<cfquery datasource="dsn" name="qPaid">
SELECT movement_id
FROM movement
WHERE contract_id = <cfqueryparam cfsqltype="cf_sql_integer"
value="#contract_id#" />
AND
movement_paid = 1
</cfquery>
<cfif qPaid.recordCount>
<cfset qContracts["paid"][currentRow] = "1" />
</cfif>
</cfloop>
<cfquery dbtype="query" name="qContracts">
SELECT * FROM qContracts ORDER BY
paid, expirationDate, finishedAt, title
</cfquery>
And this is the code that works, but just 'cause the type of my data doesn't matter at all (I can sort from numeric or string types easily), but if that wasn't the case, I would be in trouble.

If someone has a better explanation on this one, please comment. Ah! I was almost forgetting: this code runned on a CFMX 6.1 with all updates on a Linux Enterprise (not sure which version) machine and MySQL 4.1.12.

Labels: , , ,

3 comments | Links to this text |

11.01.2007 03:32 Tecnologia

Round-up

 

Since my last text, a lot of talk has gone into the blogs about the open social layer that Google is trying to implement.

As already pointed, this approach tries to rival with Facebook, by leveraging power and option for the developer, who has not to re-write its widget/app for each social network he intends to target.

But Google's proposal has drawbacks, too. I haven't seem any "license agreement" or something like that. To be truly open, the social layer has to allow social networks to join and feel safe about the environment they're joining. What if Google starts to charge then? What if Google starts to charge developers? Like Google's approach in many of their APIs and open initiatives, there's a lack of transparency that makes me feel a little "F. U. D." about sticking to them. Let's wait the official site on this.

Another thing to note is: everybody is taking this Google initiative as a reaction to Facebook "growth and profit", but it's real? I think Google is constantly and consistently advancing in this direction (open social layer and using social data beyond Orkut and other social web-sites/apps) since sometime now.

-

I'm long wanting and talking about a social-powered internet, where your network (friends, co-workers, etc) matters. And where you can use they knowledge and data to make your life easier, to get your attention focused on what really matters. From anti-SPAM and anti-VIRUS systems to better search results/page rank, the use of social data can make our on-line life easier than never.

-

Bob Sutton (writer of "The No Assrole Rule") talk about Mozilla Foundation and their commercial counterpart, Mozilla Corporation. It's a long but entertaining post about the numbers Mozilla has made. Worth the read but you have to know that actually, too many of this money comes from Google, who pays Mozilla for every search started through Firefox by Google's embedded search box.

-

W3C finally has opened an office here in Brazil, aiming to help Brazilian's internet authorities to develop, promote and implement web standards. I sure hope this comes with some law enforcing the use of web-standards at least at government web-sites - or something like that for commercial web-sites.

As I love web opportunities and freedom, I'm also a web-developer since Netscape and iCQ days. The lack of standardization through user agents is a major drawback for the "web-everything" approach we all love so much.

-

Finally, trying to find some answer to a strange bug in ColdFusion MX 7.0.2 - where cfdocument tag generates a PDF without justifying the text - I ran over a blog post by Andrew Powell complaining about the lack of standardization on CFML (the open-source language besides ColdFusion).

I'm with him: there's need to standardization through CFML implementations and that includes Adobe. People at Adobe has to know that we do not buy ColdFusion on the tags but on the surrounds, ie, the administrator interface, the possibility to extend CF power with other applications such as Flex, LifeCycle, Flash, etc.

The standardization do not need to go with ColdFusion being open source, Adobe can implement advanced functionality that will degrade gracefully in others implementations, at least until they can make something more likely what Adobe ColdFusion does.

-

Talking about standardization, what is happening at Microsoft? SilverLight? (yeah, I know, old news). Come on! There's Flash out there for so many time, you really believe people will change? You're nuts. And you think we, web-developers, are learning machines of some kind and we do not need to sleep, eat, have sex, etc.

Go with what is already a standard - as everybody does with Windows - and stick with Adobe Flash.

Labels: , , , , , , , , ,

Leave a comment | Links to this text |

If really released it'll be great: Smith, a "freeware, cross-platform ColdFusion engine" announced they can make their product open source. It's a clever move, specially because Adobe apparently will not create a "free version" for their CFML engine - I'm not forgetting others, specially New Atlanta's Blue Dragon, but at this moment I'll focus on Smith.

ColdFusion, besides its price, is growing in market share and public attention. Adobe acquisition was great for the product; Flex is delivering ColdFusion solutions and examples, bringing CF to a broad and mixed audience.

As I see the market now, ColdFusion still gets no respect from "real programmers" but is getting into designers hands and we all know design is key for internet software today (and tomorrow). Let's hope Smith really releases its product in open source license to see what market impact it'll reach. I'm thinking about giving Smith a try, but not at these busy days, when I can't barely open the Adobe Prerelease website...

Important to remember: ColdFusion is Adobe's registered trademark; Smith will release a CFML engine, not a "ColdFusion" something, although they use "ColdFusion" in their own site.

Labels: , , , ,

Leave a comment | Links to this text |


The content of this web-site is published under a Creative Commons License.
2000-2008 Fernando da Silva Trevisan