TerrenceRyan.com

I'm a 35 year old redhead geek from Philly.
I'm currently a Developer Evangelist for Adobe.
Also the author of Driving Technical Change

Entries Tagged as Web Development

WebManiacs Early Bird Pricing Ends Today

That's right, today is your last day to get reduced prices for the WebManiacs conference. After today, the only way to get a reduced price is to take a picture of you flashing your gams, send it in, and hope the guys and gals at Fig Leaf approve.*

Of course, you want to go, and see me speak about Air and SQLite, so sign up and get that reduced pricing.

* Actually, I'm fairly certain that won't work. And gams are legs, for those of you who didn't grow up during the Great Depression.

I'm in Your IPOD!

Or I would be if you are subscribed to the ColdFusion Weekly Podcast.

I got to participate in the CF_Rountable, a new format for the show where a bunch of ColdFusion community members talk about various geeky topic fodder. This week's group was:

This is in addition to the hosts:

It was a tremendously fun to participate. It was also impressive to see the amount of work and effort that Matt and Peter put into the podcast. They deserve a lot of credit for making it look effortless.

If you get a chance to participate, or see a call for participation, do it. You won't regret it.

Come to think about it, you should probably listen to it too. You won't regret that easier.

Yawn, Blue Dragon Goes Open Source

The ColdFusion community is aflutter with news that Blue Dragon has gone open source. Many other voices have chimed in on this. But I feel like I have something different to say.

Regardless of the any business gains that Blue Dragon gets from doing this, I don't think the community will get a tremendous benefit from this.

You see, there is this stream of logic that goes something like this:

I think this line of reasoning comes from people that base their request for opening up ColdFusion on what they think the rest of the web development world wants. They think it is all about cost. There are reasons that other people prefer PHP or Ruby (on Rails) or ASP.Net. Not all of those reasons have to do with ColdFusion's cost.

I think the ways in which ColdFusion can build inroads around these solution-needs are:

Notice "open source ColdFusion" wasn't on that list. I don't think it ever will be.

I don't know which of the reasons holds the biggest opportunity for ColdFusion to gain market share. You'd need to do surveys and ask current and defecting customers a whole bunch of questions. That sounds like a job for the marketing department of Adobe. Hmmm. Didn't Adobe add tags for getting information about database's schema a little easier? Didn't they fund RIAForge? Didn't they add code for calling .NET assemblies and the CFExchange tags?

I think Adobe has already decided which customers they are going to go after. Right or wrong, they've stuck with selling their current solution, and tailoring it to get those three groups. I think what happens to Blue Dragon, ColdFusion, and market share will do a good job of sorting out who's right here. I'm betting on Adobe.

Oh, why did I write "Ruby (on Rails)" everywhere? I get annoyed when people fail to understand the distinction between the language and the framework. That being said, I think that Ruby on Rails is the right thing to call the ColdFusion competitor, as it is the entire solution that attracts web developers to it, not just the language. As a further aside, I think the total solution that ColdFusion provides is the special sauce of ColdFusion, not just the language.

ExportReports.com

I'm pleased to announce that I've teamed up with Mark Phillips and the guys at Vertabase to publicly release ExportReports.com.

What is ExportReports.com, you ask?

ExportsReports.com is a site that enables users of the 37signals product Basecamp to export copies of their projects to a PDF file. Before ExportReports, a Basecamp user could request a backup of their site, and receive an XML dump of their project. Now, through our site, a user can ask for PDF exports at will. It's perfect for either ongoing status reports, or an end of project knowledge dump to a client.

We do charge a small fee, but for the first month, we are running at reduced rates.

Technology

ExportReports was written with Adobe ColdFusion, and uses the Basecamp API's provided by 37signals. Three factors led to us choosing ColdFusion:

  1. We needed to consume webservices, and ColdFusion makes this really easy.
  2. We needed to work with PDF's and ColdFusion pretty much rocks the PDF.
  3. Let's face it, I think ColdFusion rocks.

So, wish me luck on this commercial endeavor. If you're a Basecamp user, I hope you like it. If not, become one, it's a fantastic product. Then use ExportReports.com.

About Time - An Air and SQLite Application

I few days ago I came across this post at Signal vs. Noise. The first item is about a clock that tells you the approximate time - for example 11:59 is "Nearly Twelve", 12:30 is Half Past Twelve, etc. etc. The idea is, "Do you really need to know it is 12:53?" This clock gives you the amount of precision that you actually need when dealing with time.

I thought it was kinda cool, but I would never buy one. However when I thought about it, I realized it would make a good AIR application.

After thinking about I decided to do it because:

All of these things added up to me writing the thing in about a day. Here's what I did:

The amazing thing to me was how easy it was to do. The actual app worked relatively quickly, most of my time was spent getting the details like icons, and text placement correct.

Download About Time

So if you want to know about what time it is, download your copy of About Time.

Disclaimer: This totally is "an Air app that didn't really need to be". I get that. I figured someone else might like it, or at least want to look at the source.

Posting Form to Itself

I'm working on someone else's code base, and found that they were posting forms to themselves. However they had hard coded the form template names into the code for the form. Like the following:

action="index.cfm" method="post">

This is a bit of a pet peeve of mine because it tends to make the code very un-portable. What happens if you rename the file "dosomethingelse.cfm." Now you have to go back and change the file name and the reference.

It was a quick proof of concept application, so I don't fault the author. But they just aren't lazy enough.

I prefer doing it this way:

action="#cgi.script_name#" method="post">

It's highly cut and paste-able, and you never have to worry when you rename your templates. If you aren't using cfform, you can still do it, just wrap the form element in a .

Now, I imagine that I will get a comment that says something about not trusting cgi variables. It works with every flavor of IIS and Apache that I have ever worked with. Anybody see any gotcha's doing that.

Wharton Interviews Woz

Knowledge@Wharton got themselves an interview with Steve Wozniak.

It's a good interview that takes you across several facets of his life. He even has words of praise for Microsoft in it!

Steve Wozniak on Apple, Steve Jobs and the Value of a Good Prank

Using ColdFusion and SVN to Create Release Notes

I was talking last week about using XML to act as an intermediate step in building your documentation (Automating Documentation and Automating Documentation Part 2). It dawned on me that I could also share my technique for building release notes.

I use Subversion. I've gotten positively anal about commenting when I make changes. So if you were to take the history of my SVN commits, they make pretty decent release notes. The trick is to grab them and automatically turn them into documentation.

SVN makes this pretty easy. It takes one command to grab all of the changes. It takes one switch to make the change export as XML. Once that is done, manipulating the content in ColdFusion is a breeze. I do it using <cfexecute> and svn.exe, below is my code:

<cfset svn.wc = "[path to svn working copy]" />

<cfset svn.exe = "[path to svn executable]" />

<!--- -v = verbose --xml outputs it as xml --->

<cfset svn.arg = "log #svn.wc# -v --xml" />

<!--- get contents of SVN history --->

<cfexecute name="#svn.exe#"

arguments="#svn.arg#"

timeout="30"

variable="changes" />

<cfset changes = XMLParse(changes) />

<cfoutput>

<cfloop index="i" from="1"

to="#arrayLen(changes.log.logEntry)#">

<!--- lxml = LoopLocalXML (shorted for display) --->

<cfset lXML = changes.log.logEntry[i] />

<dl>

<dt>#lXML.XmlAttributes.revision#</st>

<dd>

<ul>

<li>#lXML.author.XMLText#</li>

<li>#lXML.date.XMLText#</li>

<li>#ParagraphFormat(lXML.msg.XMLText)#</li>

</ul>

<p>Files Effected</p>

<ul>

<cfloop index="j" from="1"

to="#arraylen(lXML.paths.path)#">

<!--- lPaths = LoopLocalpaths --->

<cfset lPaths = lXML.paths.path[j] />

<li>

#lPaths.xmltext#

(#lPaths.xmlattributes.action#)

</li>

</cfloop>

</ul>

</dd>

</dl>

</cfloop>

</cfoutput>

In my build process, I use <cfsavecontent> and <cffile> to write the content to a file, and then use ANT to call the CFML page that creates the release notes - voila, release notes are now part of every build, with no extra work on my part.

Shortcut Key for Commit in Subclipse

This had been driving me nuts for a little while. Maybe I can save someone else the hassle too.

To set a shortcut key for Subclipse commit:

If you go through this, and commit and other SVN methods don't show up.

ColdFusion and ODBC Agent

This sent a co-worker down a wrong path yesterday, so I thought I would blog it in case it tripped anyone else up.

There was a problem with one of our SQL servers yesterday. (It was down a long time during a routine patch and reboot due to extra stuff in a Microsoft Tuesday patch.) In trying to troubleshoot the issue, one of the administrators saw errors in the event logs coming from the ColdFusion ODBC Agent.

We are using default driver for Microsoft SQL Server in the drop down on the Data Sources page. Therefore, we were using JDBC driver and weren't impacted by the ODBC error. The error message was a red herring. It took focus away from the real problem, namely that the database server hadn't come back online yet.

Going further, as far as I can tell all of the defaults on that page are JDBC drivers, with the exceptions of "ODBC Socket" and "Microsoft Access". According to this Damon's comment on this blog post, the "Microsoft Access with Unicode" doesn't even need the ODBC driver. So I would say, unless you are doing coding against Access databases, or a known ODBC only product, you probably don't need to install the ODBC services; especially since you can always install them if you need them.

I'd be interested to know if anyone violently disagrees, or if this has been said authoritatively somewhere, and I just not up on my Google-Fu.

Categories

Monthly Archives

Tag Cloud

coldfusion web development flex coldfusion builder appearances squidhead coldfusion builder extensions higher ed html5 flash builder air mobile android driving technical change adobe apptacular running a coldfusion shop adobemax06 movable type flash catalyst flash css blackberry adobemax07 adobemax08 hero finicky adobemax09 holy crap i’m a mobile developer centaur phonegap basecamp cfc whichelement unfuddle motorola metablog irrational characters ios git evangelism edge devices code reviews ant wharton subversion security rhino philly philadelphia multidevice knowledge@wharton jobs javascript java browserlab adobemax10 adobe tv unfuddlecfc svnauth.cfc semantic html semantic html responsive web design qnx nlb linux jquery mobile it github flexorg fireworks eclipse dreamweaver apps apple adobemax11