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
7.10.2008 17:14 Tecnologia

ColdFusion turns 13!

     From: www.adobe.com

Ben Forta just remembered. I remember my first baby steps into CF back when it was "Cold Fusion", at 1997, working at a company that was upgrading from 2.0 to 3.0. I was only 17 but I knew it would change my life and woo-hoo, look where am I now. Thanks and long live, ColdFusion!

And yes, I know this is abandoned. It's just for now, in a month or two I hope to come aggressively back. Wait for it :)

Labels: ,

Leave a comment | Links to this text |

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: , , , , ,

1 comment | Links to this text |

UPDATE: This web-site will be moved from GrupoW servers to CrystalTech this weekend. Expect some downtime, but not much.

I've left the partnership at GrupoW in December, 2007. So I'm now trying to put everything on my personal life together, as I spent so many time working on the company progress and so little taking care of myself.

One of the things I want to do is to learn the right way to do CFML in ColdFusion 8 (love the simplicity of the name). When working with GrupoW, I had a lot of legacy code from CF5 and CFMX6.1 to deal with - they could be brought to ColdFusion 8 and work, but they would not take advantage of the new features.

So, as I'm flying alone now, while I'm still putting things together on personal level, I'll try to upgrade my CF knowledge to take full advantage of CF8. But then it comes to learn a lot of OOP, which I really didn't get from all this years of development. Like Ben Nadel I'll have to work my way through the OOP world.

And then it all comes to a career change. I'm not sure what I'll do after this "sabbatical break" mixed with vacation, studies and reflection, but I'm sure as hell that I need to learn a lot.

So if you're reading this and can point to some resources for getting OOP the right way and CF8 too, I'll thank you. Please don't recommend blogs in general, as I read a lot - more than 200, majority technical and CF - of then. But pointers to specific blog posts are welcome.

Labels: , , ,

3 comments | 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: , , ,

4 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 |

UPDATE: TechCrunch reveal that Google will launch their Open Social approach on Thursday. More important, Michael Arrington's post explain better what will be this approach. Right on time!

Today, a co-worker saw my web-site and I felt ashamed about this blog. There's a lot of things to talk about, a lot of insights and readings to share. What a great incentive to come back, not be ashamed of my own employees!

The reality is that work, when done right, gives you the time of your life for (almost) anything you want to do. I have a lot of interests competing for my attention and I'm not a good time-organizer. So, this was to present my excuses about being away for so long and to introduce one of the subjects I want to discuss here.

Although widely discussed, time management and projects management (not work-related only) are still lacking something. Or maybe I have to study harder to understand how can I be more productive. Which is, for what I'm concerned, a great lack of all systems out there: they're not really easy to implement/stick with.

I'm not talking about changing habits - yeah, that's hard. But when you try to read "Getting Things Done" or "The Seven Habits of Highly Effective People" - for instance - you get stuck in an ocean of "why you have to do this", lame examples of how you can succeed and things like that.

Here I have to say that I do not finished "GTD" (nor the "7 habits"); although I really think it's great, I lost the will to apply the method by the first half of the book. I keep saying to myself "I'll try it again, I have to, it works for so many". But the main point is still there. Theres any stupid-proof method to get things done?

-

Another thing that keeps annoying me is how my life isn't organized. Well, call me a librarian or a standard nerd, but I like to have my friends addresses just in one place. If this "one place" is somewhere that I can access through my cellphone, my e-mail app, my web-browser (and my web-mail) and from another devices/platforms, or it's something that will sync with then all, I don't care. I just want a simple way to have my data synchronized between apps, gadjets and even computers. And I'm talking about something as trivial as our "address book".

-

All of this comes from some thoughts that are burning my head for a some time:

1. I want to use web-apps. Really! I'm connected almost all time. I develop them since 1996.

2. But when I'm not connected, I want to be able to access my data and use my apps, even in a simpler way.

3. My data is MINE. What the HECK? Let me export it, even if it isn't in a perfect way; let me get ALL MY data when I want to. I have to make backups, I have to access it offline - or maybe I have to change service. Yes, face it, your web app maybe isn't as great as you think - or maybe someone just made something better. Or I was in a bad mood when your server was down. So, give me what is already mine.

4. Besides finding old friends, checking possible future employees (or girlfriends ;) and other personnel-related tasks, social network should evolve to allow you to use your friend's information to decide what is relevant to you. I'll extend this in a post sometime latter this week, but imagine a social-relevant Digg. I'm talking about something like that - what matters to my network matters a lot more to me than what matters to a lot of unknown people. Complicated? I hope not.

-

There's some technology - which I'm not already familiarized with - such as Adobe AIR (and MS SilverLight, maybe Prism?), Google Gears and the recently announced efforts of Google to build APIs and leverage the data under its hook to developers. This all will be targeted at this weblog now and then, as well as all web-related technologies, ColdFusion, Java and a lot more.

I hope it'll be fun for us all and I'm really glad to come back here. Let's see if I can stick with this.

Labels: , , , , , , , , ,

Leave a comment | Links to this text |

7.10.2007 07:20 Tecnologia

ColdFusion turns 12!

     From: www.forta.com

I'm trying to "restart" this weblog and what's better to start than greeting Adobe's ColdFusion for its birthday?

Long live, CF! And thanks for all those years of productivity, happiness and the sense of "done!" upon my projects :)

Labels:

Leave a comment | Links to this text |

Jeffrey Zeldman wrote about the redesign of Happy Cog Studios web-site. This lead me through a really long line of thought.

As I pointed at previous post, design is important and ColdFusion being a programming language attached - since Macromedia's days - to the design world is a great thing.

That being said, I see ColdFusion development being fragmented these days. Some people argue for more programmatic, Object Oriented recurses. Some jumps to the boat to fight for more easy-to-use solutions. There's no consensus at the community.

To me is far more important to implement things quickly and easily - that meaning more webapps with less time - to make great systems and more money. As an entrepreneur, I'm interested in tools, tags and features for that. We have a handful of ideas but no time to implement all of them, even using CF, which we believe to be a RAD.

To accomplish that, Adobe should focus on two things:

  • A great IDE to allow developers to do MORE with LESS. I have to say I'm not using Dreamweaver, Eclipse nor Flex tools and I don't know the state of these softwares. But first key concept to focus on is IDE. Period.
  • To map the most common tasks and create really easy ways to implement then. CF price is high and I can bet we never used some of the most advanced features it delivers. We just haven't need of then.

I'm not saying that Adobe should forget all the great and advanced features. It has to be there and we like to know that, if we need, they'll be available without the need to spent more money. But the main focus should be RAD solutions, and the "Flex+ColdFusion" package seems to me as a sign that Adobe really understand things this way.

As a side note, Happy Cog new design is amazing. I wanted to do THAT with this web-site but, as you can see... I'm in lack of design skills to do so. =)

Labels: , , , , , , ,

Leave a comment | Links to this text |

Yesterday was the launch of Yahoo! Pipes. I haven't had the time to try it myself - and it appears to be down all the time, anyway, most because of the attention it's receiving.

Pipes seems to be a web development ambient that allows users to mash RSS Feeds up to get more interesting and focused information in an easily and fashion way. Everybody is talking about it (from BoingBoing to O'Reilly Radar and HacksZine) and I think the idea sounds fantastic, bringing Yahoo! (finally) to be the first one to release something really new. Let's watch what move Google will be doing...

There's also some interesting news today about ColdFusion. As I wrote in the previous post, the combined force of ColdFusion plus Flex is huge. Adobe released today a case study of a solution to deliver risk management information in a powerful, meaningful and easy way. Very interesting, specially because of the integration with LogicERM.

Second interesting news today was the announcement of the third (or second?) coming of Ben Forta to Brasil. Great! It'll happen in February, 28th, at São Paulo and you can get all details here. I read it at the CFBrasil mailing list and at CFGigolô blog. Alex Hubner, CFGigolô founder, is one of the most devoted ColdFusion developers here in Brasil and member of the AUG-SP board of directors and CFBrasil mailing list manager.

Some years ago we had Marcello Frutig too, but it appears he (sadly) retired from development. This makes me remind that I first met Frutig at previous visit of Mr. Forta, at Rio de Janeiro - I've had to travel about 15 hours in two buses to go -, in October, 2003.

At that time Flex was a secret "in development" by Macromedia (!) and I was questioning Mr. Forta (in a shame poor English that made me blush) about how Flex and ColdFusion could live together (and if Flex wasn't a ColdFusion killer!) and about the support from Macromedia to hosting companies.

It's sad to note that I think today as then: it's poor and keeps youngster from learning and developing in CF, as they don't have hosting at a reasonable price - or don't have a host at all. I sure hope Adobe change things with Scorpio (CF8) to stay competitive. This is one topic I'll be watching.

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-2013 Fernando da Silva Trevisan