Call for Contributors

Okay, here's the scoop. I make no secret that I consider myself to be pretty competent... In fact a number of people over the years have come to the conclusion that I'm downright conceited. :) On the other end of the spectrum a CF user group manager in Florida once in response to the question "who here has worked with x" at which I was the only person to respond said "well obviously, because Ike's done everything". I took it as a complement.

The reality is I'm just one guy and no one person, no matter how smart or how little they sleep can possibly know everything there is to know about ColdFusion, much less software in general. That being the case, I've always had a vision of the onTap framework being host to an array of plugin applications that operate as "services" to one another, creating a powerful software synergy between open-source projects and commercial products provided by entirely different people.

You would use the onTap framework as a foundation and then you would install the Members onTap plugin for managing your user information, onContact for contact information (my own commercial app), and then you would buy and install a CMS from some other vendor and a shopping cart from yet someone else. And all these applications would work together without requiring any tweaking or integration on your part. All the integration would be done for you by the framework!

Does that sound really cool? Well there's a name for it, it's called a Service Oriented Architecture (SOA) and it's something Sean Corfield has talked about a fair amount recently. Much of the underlying structure for this already exists ... in fact, most of it has been in the framework for a long time. The recently released Version 3.2 of the framework merely simplifies the management of these services and improves performance.

However! I don't know everything. I recently realized that I was somewhat behind the curve on caching techniques and I blogged at the time about starting a new project called CacheBox, which I plan to include in upcoming releases and hope will be used by other frameworks as well. And although I've had several people tell me already that they're interested in this new project, it's currently on hold. Why? Because Rob Brooks-Bilson is giving a presentation at the Adobe Max conference about advanced caching techniques for ColdFusion and I want to get his notes and pick his brain some before I make much more progress on that project (although I won't be at Max).

And herein lies the problem. I'm just one guy. I can't know it all! And I can't do it all! I've got loads of things I want to do, many that I've wanted to do for a long time, and just not enough hours in the day to do them. I need some help to make these projects fly. I've actually wanted more people to be involved in the onTap framework and contributing for a long time -- years in fact, since I started working on it. I honestly don't know why there aren't more people using it. There are probably a variety of reasons, but there's been very little feedback.

So this is my public admission that "I SUCK AT MARKETING" and at the same time an open request for more people to contribute.

So how can you get involved?

There are several ways you can contribute to the onTap framework.

  • Make Suggestions: Simplest thing you can do. Is there something you've always wanted to be able to do with CF and haven't been able to figure it out? Email me and I'll see what I can do. And if I can't find a project that does it and I can't do anything about it myself, then I'll blog about it and we'll see if the community can provide a solution!
  • Write about it: You can download it, check it out and write a blog about your experiences, good or bad, BOTH HELP! If you've tried it and had a bad experience, write a blog about it and shoot me an email. It may very well be that you had issues with something I myself didn't like and have since improved - OR - if not then I may be willing to work on whatever issue you're having. The worst case scenario is that we disagree about how to write software, in which case we can agree to disagree... but you won't know until you ask. :)
  • Documentation: If there's anything you don't understand about the framework, or would like to understand better, just ask. If I've omitted anything in the documentation or if there's anything that could be better explained, I'm more than happy to update the documentation, and would love to include your articles or examples as well if you'd like to write them, it would help me out tremendously. :)
  • Review / Contribute Code: Look over my code and see what you find. If you can improve it -- performance, better functionality, better security, whatever, send me your revisions and I'll see about including it in an upcoming release. Even if it's just comments in the code - I know a lot of my code doesn't have a lot of comments. If you're scratching your head, ask, I don't bite. :) And we can add comments wherever they might be useful.
  • Write Plugins: DataFaucet is a good example of this. The DataFaucet ORM framework includes an onTap framework plugin in its distribution. What's it do? Not much -- all it does is act as a facade for integrating the DataFaucet ORM with the onTap framework. The installer may be a little involved, but guess how big the guts of it are? TWO files... yes, two. Not two-hundred, not twenty, TWO. Beyond that, the rest of the plugin is the installer... the installer is actually much larger than the plugin itself! What I'm really getting at here is that creating a plugin for the onTap framework is really easy to do and you may even already have a project or application that would work well as a service like DataFaucet or as a sub-application. Do you like Transfer? Would you rather use Transfer than DataFaucet? Write a Transfer plugin! I'm sure Mark would love to include it in his Transfer distribution and And of course, if you have any questions about how to write the plugin or the installer, just ask, I'm happy to help!

I'm looking forward to working with you!

ike

Related Blog Entries

Comments
Mark C.'s Gravatar Something to do to help people take the plunge and use onTap is write a how-to book. Don't have to cover everything in minute detail but give good, real world examples of what can be done with it. Call me old school, but it does something for me when I can put my hands on a reference book and sink my teeth into it.
# Posted By Mark C. | 8/10/08 12:02 AM
ike's Gravatar Thanks Mark. :) There is probably enough material already for me to put together a small book. I could start by expanding the quickstart guide and then move on from there and scavenge the blog for some extra material.

You're not the first person I've heard say that a physical tome helps "make it real" for them. And it's honestly a sentiment I can relate to myself in spite of the fact that I so rarely buy the books because I'm so busy and so broke. :P

Do you think a printable ebook on Lulu would be enough, or do you think I should actually make a cover and sell a bound edition? Of course, if I put one together I'm going to want to get some help with the editing before I publish it. I may ask Jeff Houser and/or Judith Dinowitz to give me a hand. But I'd love to get feedback from as many pre-release readers as possible. :)
# Posted By ike | 8/10/08 11:37 AM
Mark C.'s Gravatar Not knowing shinola about the book publishing biz, I couldn't offer help with the distribution vehicle. But I think a) you should charge a modest fee for it, and b) partnering with another author you trust is probably a good thing. Additionally, you shouldn't stop with onTap, but release other titles that share your expertise in Coldfusion development.
# Posted By Mark C. | 8/10/08 10:04 PM
Tony Garcia's Gravatar Hi Ike,
I'm not sure if you need to go all out and get a book published. The only other framework with a published book is Fusebox, and that was quite a while ago. I know that onTap has documentation included with the framewok, but I still think putting some docs online on a web site with some quickstart guides should be first priority. Some people just like to see what it's about before even downloading it. Then once you get a growing user base, it might be worthwhile to think about a printed manual down the road. Just my 2c.
# Posted By Tony Garcia | 8/12/08 10:43 PM
ike's Gravatar Thanks Tony, yeah I actually am in the midst of working on getting the framework back onto its own domain. I registered tapogee.com yesterday. The folks at HostMySite have given me a free account for a community site and I'll be setting it up there. I may decide to use their built-in blog, although I wonder if I can move these entries over there... I'm also going to be working on the webservice I always wanted for the plugin manager so you can discover and install new plugins and plugin updates from within the add/remove wizard the same way you can install Eclipse or FireFox plugins from remote servers without leaving the IDE. I may not have that up right away, but I expect to at least have the documentation up on the site by the end of this week.
# Posted By ike | 8/13/08 8:24 AM
ziggy's Gravatar I'd say do not write a book.

I'd have a wiki with basic info, a concise getting started guide, building your app guide, some basic examples, advanced sections, sample apps, etc. Coldbox is a good example, or jquery. Until people see those things, and can play with something, it's too much hassle to figure out just to know if you'd want to use it.

I think you need first to summarize concisely on the hompage of the project why anyone should use this framework. Is it faster than others? Easier to develop with (why)? More docs? Seriously, why would I consider onTap over Coldbox or...? Your framework comparison is good, thank you, if long and maybe in need of some js to open/close sections, but I mean something more concise so people can say, Yes, that's my style and what I'm looking for. SOA architecture might be a good idea, but I don't really know anything about it. (I do know Coldbox allows plugins.)

A single site with info, wiki, forum, bug reports, would be good.

I would also think open-source compatibility would be a very strong quality in a framework as well. Too many rely on CF7/8 only. I use BD now but the new Railo is going to rock, I think.
# Posted By ziggy | 8/19/08 12:30 AM
ike's Gravatar Thanks Ziggy. You bring up a number of good points.

Right now there's a quick-start guide on the framework web site -- if you hit the "documentation" link. The home page of the site ( http://on.tapogee.com ) is not very clean right now because it's new and I've been working on a bunch of different things and haven't had the time to really give it a layout. I want to get to a place where the navigation is clean and intuitive, just not there yet. Anyway, the quick-start section of the documentation may be the kind of intro you're looking for, the sort of thing you might want to see in the Wiki.

I've been giving some serious consideration recently to the idea of recreating the onTap framework "livedocs", which is something I did a long time ago where the framework's documentation worked much like the Macromedia livedocs (now Adobe livedocs) with blog-esque comments at the bottom.

At this very moment I'm uploading a couple of video screen-captures to YouTube showing "one-click installation" of plugins, which is the SOA approach at work. That's what differentiates the onTap framework (SOA) from say ColdBox (OO/MVC). What is meant by "plugin" with ColdBox or Mach-II is that you can write CFCs and configure your framework to use them to modify the behavior of the framework ("low level" changes). What's meant by "plugin" with the onTap framework is "high level" sub or peer application functionality that can be installed via the browser in much the same way that you might install add-ons into Firefox. Note that when you do install add-ons into Firefox, there's no programming involved. You're not editing .ini or .xml files or anything, you just click and they install.

In order for that to work the framework needs to have systems in place internally for managing multiple applications and allowing them to integrate with each other in an automated way. The use of XML configuration files with Mach-II might make it a little easier to do that to some extent in Mach-II than in ColdBox, but there's not been any interest in doing that in the Mach-II community as far as I know. The same could also be said of Fusebox, although the problem there is that the recent versions of Fusebox offer several wildly different architectures which could easily make those kinds of integrations challenging. ColdBox is a decent OO/MVC framework, but it's "flat" in the sense that it's really designed just to support your singular application that you or your team have developed. The onTap framework has been designed from the very beginning with the intention of supporting multiple applications from different authors that integrate with each other.
# Posted By ike | 8/19/08 1:18 AM
ziggy's Gravatar >>docs

I forgot that because I got an error trying that page yesterday. I see it works fine now. Took a small look already and does much of what I mentioned.

It would be nice to see a sample app because I get the impression, rightly or wrongly, that I'm going to have a mess of many folders with subfolders, though I think I can have default items for everything in one folder, and extra folders would be for exceptions only. If so, it would be good to emphasize the default because most people moving to a framework are looking to clean up a mess.

I still would say that the selling point is not clear. I understand what the CFWheels guys are aiming for. I'm not sure here.

For example, the first sentence:

>>The onTap framework seeks to allow you to define your own directory structures for your application

It seeks to allow to define..., or simply "The onTap framework lets you use your own directory structure" (singular!)?

But wouldn't it be much better to say it gives you a clean default structure (but also lets you use your own structure - if it does)? People want a framework because they need structure.

Then I have little idea what this adds to the sentence or even means exactly:

>>while creating a recognizable and reproducible structure for the generation of individual pages or webservices within the site.

So a directory structure to create a structure to create pages? That's already implicit in "framework."

And, most importantly, is that really the summary benefit???

Then first in the bullets:

>>Speed development by providing a Service Oriented Architecture (SOA)

I understand how CFWheels speeds development (or so they say), but I have no idea what an SOA is and how it speeds my development. I understand it allows plugins, but not how it speeds my development.

Etc.

Again, I'd go through all that carefully and concentrate on your specific benefits, and then summarize them as concisely as possible, then have it on your homepage Take a look at cfwheels, jquery, RoR sites. Or these guys, though busier: http://www.gosava.com/go/sava/

I hope an outsider's view helps. Thanks for the quick reply, btw.

----------

The docs website often seems slow and I got the same error again as yesterday:

The request has exceeded the allowable time limit Tag: CFLOOP

The error occurred in C:\Websites\168584jp4\_tap\_cfc\ontap.cfc: line 120
...
Called from C:\Websites\168584jp4\Application.cfc: line 161

118 :       <cfelseif isStruct(properties)>
119 :          <cfloop item="x" collection="#properties#">
120 :          <cfset this.setValue(x,properties[x],overwrite)></cfloop>
121 :       <cfelseif isQuery(properties)>
122 :          <cfloop index="x" list="#properties.columnlist#">
# Posted By ziggy | 8/19/08 10:10 PM
ike's Gravatar Thanks for the thorough feedback. :) Hopefully I'll have the "livedocs" style comments set up on the site this evening, which should make it easier to leave these kinds of comments right in-context. In the meantime, I'll have to wait 'till I get home to look and see what pages you're commenting on ... it didn't look to me like it was the "about" page, though I could be mistaken. And yes, an outsider's view absolutely helps. :)
# Posted By ike | 8/20/08 9:53 AM
ike's Gravatar Okay so... things got kinda hectic for me for a while and I kept not getting back to this one (which I probably should have), but I've finally gotten back to it and I put up this wiki article with what I think is a less ambiguous explanation of core goals. http://ontap.wikispaces.com/Project+Goals

You're right, that overview page needed a lot of work! In part I think it was old and I'd kind of added to it gradually before I learned what "SOA" meant. And then when I learned about SOA rather than revisiting the whole thing I just sort of tacked it in like the rest of it. :P

I do think the outsider's perspective helped ... I think it usually helps. :) and I'd like to think this is a good example. That wiki article is what will be the new overview page in the framework distribution very shortly here.

Thanks for all your help Ziggy et al :)
# Posted By ike | 9/24/08 11:58 PM
BlogCFC was created by Raymond Camden. This blog is running version 5.5.006. | Protected by Akismet | Blog with WordPress