Viewing by month: February 2006

Feb 17 2006

Mission: Clayton

My mission, that I've chosen to accept, is to pack all of my belongings in the next six days, load them on to a truck, and to move them approximately 300 miles south of Washington, DC to the town of Clayton, NC.

For the next six months, I am to reconnoiter the lot diagonally across from the one I've purchased, observing the construction of the Hughes household.

Upon completion of that mission, I am to grill various dead mammals and consume fermented grain to welcome the new neighbors.

Dossier photos of related subjects, from an unnamed intelligence source, follow.

Click dossier photo to expand.

13 comments - Posted by Joe Rinehart at 8:35 AM - Categories: Model-Glue | Off Topic

Feb 15 2006

Geonosis (Ajax Code Generator) Review

Geonosis - what the heck is it, anyways? I've seen it advertised on a blog, and figured I'd give it a shake and see what it does. It looks like a UI and data-layer generator for creating Ajax-based apps quickly.

I've taken an interest in ORM, Ajax, and tools that help with both, and that's what this claims to be, so here we go.

Geonosis is produced by Ray Horn, and is available at his blog. I'm aware that he's a controversial guy, so let's keep this about Geonosis, ok? I'm honestly interested in what it does for very real (but not MG2.0) reasons.

Download -> Unzip -> Readme.txt

"Geonosis is the beginning of what will become a fully automated graphically oriented database driven AJAX Application Generator capable of allowing non-programmers to generate complete robust web based ColdFusion applications."

Sounds pretty cool. Looking at the readme, it creates some database tables that define and store metadata about objects, their attribs, and their relationships. I'm not sure why "objectAttributes" and "objectLinks" are different tables - to me, has-a is just another property - but I should probably dig in further before asking.

Installation

There's two SQL scripts in the distro - for MSSQL 2000 and MSSQL2005 - so I ran the appropriate one after giving it a read. It creates five tables and links between them. If you choose to install it, be sure to remove the references to the [CMS] database and change them to whatever you use.

That's all the readme file covers, so I guess I just go run the code now.

http://localhost/geonosis

An unexpected error occurred.

Error Event: onApplicationStart

Error details:

An exception occurred when invoking a event handler method from Application.cfc The method name is: onApplicationStart.

Message:

Parameter 2 of function GetToken which is now 0 must be a positive integer

Ok, it's pre-release software, let's see what happened.

c:inetpubwwwrootgeonosisApplication.cfc

Êþº¾  -? SourceFile 8C:InetpubwwwrootmyAJaxWebAppGeneratorapplication.cfc -cfapplication2ecfc343548948$func_ONSESSIONEND  coldfusion/runtime/UDFMethod   ()V     this /Lcfapplication2ecfc343548948$func_ONSESSIONEND; 

Not much I can do with that.

Could the author maybe tell me what I did wrong, provide a fixed distro, or, if Geonosis is going to be free, go Open Source and release this stuff without the encryption?

19 comments - Posted by Joe Rinehart at 7:44 AM - Categories: ColdFusion MX

Feb 10 2006

Model-Glue:Unity (2.0) and ColdSpring

Some people guessed it immediately, but one-half of the "Unity" nickname is that Model-Glue 2.0 is dependent on ColdSpring. I've split my outside-of-work development time between finishing 1.1 and starting 2.0 (2.0 is actually guiding 1.1 a bit, so it's worth the delay), and I'd like to ask for some community input.

Read more...

14 comments - Posted by Joe Rinehart at 8:25 AM - Categories: Model-Glue

Feb 10 2006

ASP.NET: Bringing bad VB to the Web

I heard this yesterday, and it made me chuckle:

"Sure, there are people doing good ASP.NET applications, but those are usually C# people who really 'get it' building a model and attaching an ASP.NET presentation layer to it. That's rare, though. For the most part, ASP.NET is simply the most efficient way to turn a bad Visual Basic 'developer' into a worse Web 'developer.'"

I have to think it's at least partially true - just look at the toolkit that Visual Studio provides. It boggles me how proud Microsoft is of making it so easy to perform poor architecture. I mean, it makes a great demo, but allowing you you drag and drop data access into your presentation layer is just going to cause a world of hurt down the road.

Maybe I'll look more seriously into a C# port of Model-Glue 2.0: do any .NET folks out there think it'd be worth it?

Ok, flame on.

8 comments - Posted by Joe Rinehart at 7:16 AM - Categories: Model-Glue | Causing Trouble

Feb 9 2006

Don't make users feel dumb!

I'm using Word to do a writeup on some stuff, and I need to e-mail it to someone. Usually I'd save it, hop over to Outlook, create an e-mail, and attach it, but I thought I'd try the "e-mail" button from within Word.

To, CC, Subj, etc. boxes appear, and I've filled them out, but I've been sitting here for about a minute now trying to find the Send button.

Lesson: Don't add cool features if they're just going to make an otherwise intelligent (ok, debate that in comments...) user feel stupid.

9 comments - Posted by Joe Rinehart at 2:14 PM - Categories: Causing Trouble

Feb 9 2006

Model-Glue hits 6,000 downloads!

I've been keeping an eye on Model-Glue downloads, watching them slowly approach 5,000 overall downloads, and got distracted. In the past month, Model-Glue has gone from ~4,800 downloads to 6,293. Thanks to everyone who's downloaded it for making it the most downloaded thing I've ever written!

6 comments - Posted by Joe Rinehart at 7:12 AM - Categories: Model-Glue

Feb 8 2006

Real-World Event Gateways: Verity via Concurrency

A little while ago, there was a thread on Ben Forta's blog (I can't quite remember it) where someone was looking for practical examples of using Event Gateways. They just saved the day in my neck of the woods, and here's why:

I've got an application where a common user interaction updates records in Verity. You never know how many Verity records may get updated: maybe one, maybe ten thousand. However, anyone who's used Verity knows that even one update can be a little slow.

As the Verity collection grew, the UI got painfully slow. Simplified (the <cfindex> actually lives a layer or two down in a VeritySearchFacade), the culprit was a function that looked like this:

<cffunction name="update">
<cfargument name="queryToUpdateFrom">

<!--- The slow part... --->
<cfindex... />
</cffunction>

Solving this problem was super easy because the resulting UI doesn't rely on Verity being updated - it's just something that needs to happen.

First, I downloaded Sean Corfield's Concurrency Library and installed it by following the readme.txt instructions (five minutes).

Second, I changed the name of the guilty method:

<cffunction name="updateSearchService">
<cfargument name="queryToUpdateFrom">

<!--- The slow part... --->
<cfindex... />
</cffunction>

Third, I wrote a new "update" method to replace the old one using a Future:

<cffunction name="update">
<cfargument name="queryToUpdateFrom">

<cfset var future = createObject("component","Concurrency.FutureTask").init(task=this, method="updateSearchService", queryToUpdateFrom=arguments.queryToUpdateFrom) />
<cfset future.run() />
</cffunction>

And, yeah, that's it. The crazy slow update happens in a separate thread. The UI keeps chugging along.

4 comments - Posted by Joe Rinehart at 9:10 AM - Categories: ColdFusion MX | Model-Glue