Facebook in 17 Minutes

I’ve long thought about doing a blog in 15 minutes demo of Squidhead. But come on, everyone’s done one by now, right?

Then I thought about ColdFusion 8 and its image capabilities, and the image CRUD that I’ve added to Squidhead and thought maybe a facebook type application would be more compelling. So I did it, and put it up on Google Video. (cause I couldn’t get it under 10 minutes.) Then I saw it on Google video and was repelled by the quality of the video. So I have few options to watch it below.

I show off three features of Squidhead in the video:

  • Image CRUD interface
  • Foreign Key usage
  • Scaffolding your stored procedures.

If anyone watches it, please let me know what you think.

UPDATE: It appears that the Flash Version will cause your computer to crash. Sorry about that. I will have a replacement up at some point in the very near future.

UPDATE:Flash Video version works now.

Max 2007 Day 3

My last day at Max was marred by the technical problems. I was going to give a 5-10 minute demo of some of stuff we’ve done with ColdFusion 8’s Exchange features. My laptop died right before I was to start, then I couldn’t get my laptop’s VGA to display on the projector at the same time. I totally fizzled out. I have to thank Jason Delmore for covering for me, and trying to explain to the audience that I wasn’t a complete idiot.

I then wandered into a session named Best Practices for Creating Great Web Experiences. I was a pretty interesting view into the interworking of a design team. I found it interesting because it was so far afield of what I actually do.

I then wandered around for awhile and spent some time in the community area. There I demoed the exact thing I was supposed to demo at the Boot Camp, basically deleting all of my work contacts from Exchange and letting my ColdFusion application repopulate them. At least someone saw it.

Max 2007 Day 2

My day started at the Keynote. I have a few random thoughts about it.

  • Bruce Chizen would be pretty bitter about being the rich and famous CEO of Adobe if he didn’t enjoy it so much. He made me feel guilty though for continuously looking up his salary for one of my work projects. It’s impressive.
  • Scene 7 does some absurd stuff with dynamic imaging.
  • Share looks promising
  • Thermo will be absurd if it does all it promises. Photoshop Composition to Flex application in one click.
  • Next version of ColdFusion is code named centaur. My supposition is that it is so named because if angered, it will shoot you with an arrow, and then trample you to death. It does make me feel a little afraid that they will strap a horse’s body on a shirtless Ben Forta, ala “Scorpio Man.” I am disturbed.

I sat through Sean Corfield’s session on Design Patterns, it was simply tremendous. I tend to be a fan of Sean’s but I’m not exaggerating. He did a great job of explaining the theory and the concepts behind patterns. Even though I thought I knew them already, he did bring a new perspective to the whole thing.

I also attended Ryan Stewart’s session on Air and PDF integration. It looked interesting, but I have no idea why the hell you would ever do it.

If my day looks a little light, I had a minor problem with something back at home, so I had to skip my first session. I also had an opportunity to give an ad hoc demo of Squidhead, so I took it. If for any reason anybody wants a 5 minute demo, drop me a line. I’m always willing.

I finished up the day at Max Awards and Sneaks Session. The following really stood out to me:

  • Visual Communicator is a niche product that will make video presentations very easily. I think it’s going to be a very cool boon to the vlog space.
  • Photoshop express is just beyond cool. Pretty much everything anyone would need to do to a photo can be done in an online client. The demonstrator completely retouched a photo in under 30 seconds. Crazy.
  • Hemant presented on ColdFusion publishing to Air. This is something I really wanted for CF since I saw the Air Bus Tour. They’ve done more with it than I ever thought. You can do online and offline applications. Cooler than what I was imagining.
  • Flash gets skeletons. Very cool.
  • C++ on Flash leads to Quake on Flash. Tremendously cool.
  • Adobe hired that guy who does the dynamic image content resizing.

I ended up skipping the Event, because it didn’t really cry out to me, I had to prepare something for the CF Boot Camp tomorrow, and I’m beat from last night.

Max 2007 BOF

I attended 2 Birds of a Feather last night.

The first was Meet the Team: ColdFusion. I think Sean Corfield blogged about it, and I tend to agree with him. I was fully expecting the crowd to go feral again, but no it was quite cordial. I think ColdFusion 8 being so rich, and the alpha and beta program being so inclusive was definitely a big part of it.

The second was Selling ColdFusion Outside of the Community. I think the biggest thing I got out of it was the idea that the ColdFusion community has to start swimming in other ponds. We tend to form an echo chamber amongst ourselves. Then when something negative is said outside the ColdFusion community piles on and just disagrees. Instead we need to be continuously engaging those outside of the community so that we can build credibility over the long whole. So when we tell them ColdFusion is an enterprise worthy language that can really drive rapid application development, they might just believe us.

Afterwards I lured Steve Rittler and Rob Brooks-Bilson over to the Hilton to have a stogie with Ryan Steward and John Piotrowski.

Adobe Max 2007 Day 1

I’ll be updating this over the course of the day, so feel free to come back, the contents will change.

For the first time in a few years I did not oversleep at all. I actually made it to see the entire Keynote. There were some cool things to be seen. For me the highlights, in no particular order, were:

  • Refactoring and profiling in Flex. Finally Flex developers have the kind of detailed performance information that ColdFusion developers have had for years.
  • Hydra ?? A language that allows Flash developer to write their own effects.
  • Premiere Express, a web version of Premiere, that while not great for the power editor, would be a huge boon to the amateur video editor.
  • The sheer plethora of Air application that I want to download and try, specifically:
  • Adobe Developers Connect which will now keep the introNetworks application for Max up all year round.

Unfortunately, staying for the entire keynote made me late to my first session. With it booked solid this year, if you are in a popular session, and you are late, don’t expect a seat, or standing room. I wandered into a few other rooms, but nothing grabbed me.

After Lunch I attended the session given by my coworkers. Before I recommended their session based on knowing them; now I can recommend it on the content. They did a great job of explaining how and why they converted a VB 6 Trading floor simulator to Flex and ColdFusion. I highly recommend it: A Virtual Trading Floor: Bringing Wall Street to the Classroom.

Next I wandered into an Inspire session about the design of Buzzword. It started late and had a lot of technical issues. That was a real shame because Buzzword just looks too good to be true. I signed up for a beta, and I’m hoping to get a test account soon.

Max 2007 Day 0

I’m here, and loving it so far. The venue is ginormous. I was at the Welcome Party, and halfway through discovered that there was a whole half of the party on the other wing of the center. Huge. HUGE!

While at the welcome party I picked up two interesting bits of information.

1. During Ray Camden’s Inspire session on Riaforge, I learned that Riaforge automatically makes a zip of your project if you post it to Subversion. Very cool, and will simplify posting Squidhead updates for me.

2. I caught Damon Cooper and had a great talk with him. In the course of that he told me something very interesting about the business side of ColdFusion and Adobe. I don’t think he necessarily wanted it spread, and I’m going to honor that. But I encouraged him to show up to the BOF session that Brian Meloche is running (and I’m on the panel,) and let the rest of you in on it. Without giving too much away, let’s just say that Adobe as a company is pretty surprised about the success of ColdFusion 8 and that may have very positive implications for its marketing. So, if you see Damon tomorrow, make sure you remind him to go.

I also learned that Steven Rittler smokes cigars, and Rob Brooks-Bilson and I have almost identical taste in TV’s shows, but that’s probably less interesting to you all.

Looking forward to tomorrow.

ColdFusion 8 Mapping Application Name

I think I just discovered my favorite block of code ever. As such, this is a post so that I remember how to do this when I need to do it again, your may not be so impressed.

I was trying to figure out a terse, reusable way of making sure that my application root was mapped to my application name, and that my customtags folder be mapped as a custom tag folder. It had to work with inherited sub application.cfc’s and deal with the fact that my application might not be in the root. I came up with this:

<cfset this.name = “APPNAME”
/>

<cfset this.mappings[“/#this.name#”] = getDirectoryFromPath(getCurrentTemplatePath()) />

<cfset This.customtagpaths = “#getDirectoryFromPath(getCurrentTemplatePath())#customtags”/>

Max 2007 – BOF

I responded to an open call for panelists for one of Brian Meloche’s Birds of a Feather Sessions, titled “Fixing ColdFusion Perceptions and Reputation.” I’m in.

I looking forward to it, especially since I disagree with a lot of the solutions I hear to solving the problem. A quick preview or my opinions:

  • I don’t think Adobe has to give away production-ready ColdFusion
  • I don’t think Adobe should sell an IDE.
  • I don’t think Adobe should take over CFEclipse (I’m not against them throwing some pounds Mark Drew’s way)
  • I don’t think magazine or journal articles are the problem

My thoughts aren’t fully fleshed out, but I think it has to do with the fact that ColdFusion’s niche isn’t clearly defined. If you’re a Microsoft shop, you use a .Net solution. If you’re a startup you use Ruby or PHP. If you see yourself as providing enterprise solutions you use full blown Java. Caricatures to be sure, but I think close to the mark.

I think if you asked most ColdFusion programmers why they use it, they would say, “Because it makes my job easy.” But people who like things to be easy, is a sort of hard niche to get a hold of, I mean who doesn’t want that.

Anyway, these are just ramblings. Feel free to argue with me either here, or next week in Chicago.

Squidhead 2.0

I’ve been noodling here and there and have finally put the finishing touches on Squidhead 2.0.

Before I started rewriting, I spent some time developing more applications with Squidhead. I figured out a couple areas of inefficiency and tried to fix them when I could. Creating configuration files took longer than it should and was a bit confusing. I found myself writing Ant scripts for all of my applications. I kept forgetting to test my applications.

Further when I was maintaining the actual Squidhead codebase, some things were frustrating. Maintaining a separate code base for ColdFusion 8 and ColdFusion 7 was a pain in the ass. Maintaining a simple version and a business version was a pain. Adding new features required a series of cascading tweaks because it was poorly architected.

So here are the solutions to all of those issues and a few more for good measure.

New features:

  • MySql 5.0 Support
  • It creates Ant Build files for common tasks
  • It can run CFUnit tests that it creates during its build
  • It now will use CF8 rich elements it the generated crud *
  • It now handles images *
  • It’s now a little easier to extend
    • It’s easy to add steps.
    • It’s possible to add application templates
  • Modified XML configuration allows developer to override certain defaults like form field labels.
  • New Configuration Builder
  • New Shiny Web 2.0 looks (Okay, not a feature per see.)
  • Cheesey Web 2.0 Logos created for every application.

* CF 8 features can be turned off if application will not be running on a CF8 server.

Deprecated Features:

  • Simple Applications (They are still available, but they won’t be updated)

Removed Features:

  • Threading (Speed Enhancements weren’t enough to justify added complexity)

Requirements:

  • Squidhead: ColdFusion 8
  • Database: Microsoft SQL 2000 or 2005; MySql 5.0
  • Generated Application Using MSSQL: ColdFusion 7 or 8
  • Generated Application Using MySql: ColdFusion 8

Notes:

  • For the most part, your old config files will still work. However the more changes you made the more likely they are to have problems.

Old versions of Squidhead still available at http://www.numtopia.com/squidhead.

The new version is available at Riaforge.