<?xml version="1.0" encoding="utf-8"?>
			
			<rss version="2.0">
			<channel>
			<title>Trond Ulseth&apos;s Blog - newBee</title>
			<link>http://trond.ulseth.no/index.cfm</link>
			<description>Trond Ulseth</description>
			<language>en-us</language>
			<pubDate>Wed, 02 Jan 2008 20:15:19 -0600</pubDate>
			<lastBuildDate>Thu, 16 Aug 2007 06:14:00 -0600</lastBuildDate>
			<generator>BlogCFC</generator>
			<docs>http://blogs.law.harvard.edu/tech/rss</docs>
			<managingEditor>trond@ulseth.no</managingEditor>
			<webMaster>trond@ulseth.no</webMaster>
			
			
			
			
			
			<item>
				<title>What&apos;s happening with newBee? (Kind of a Roadmap)</title>
				<link>http://trond.ulseth.no/index.cfm/2007/8/16/Whats-happening-with-newBee-Kind-of-a-Roadmap</link>
				<description>
				
				&lt;p&gt;
According to riaForge the newBee page has been seen more than 3600 times, and the framework itself downloaded 60 times. That is much more than I would have thought. I&apos;ve not heard from anyone who has downloaded and tried it though, so as far as I know I&apos;m the only one who have developed applications/sites using this framework. However I still plan on developing the framework further, and also promote it a bit more once it reaches a 1.0 release.
&lt;/p&gt;
&lt;p&gt;
Here are the things I would like to do before calling it a 1.0 release:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Whitespace controll&lt;/strong&gt; Look into how much whitespace controll I can do within the framework without affecting how you would code a newBee application.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Assigning results to scopes&lt;/strong&gt; This would make it easier to make multiple step forms, save login information etc.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Save named views&lt;/strong&gt; A little &quot;rip-of&quot; of how Model-Glue does it.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;More and better documentation&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;General code cleaning and commenting the code better&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
I&apos;m sure there was at least one more thing I had on my mind..... Well, well - that&apos;s the list for now&lt;/p&gt;
&lt;p&gt;
I&apos;m also planing a website for the framework.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;EDIT:&lt;/strong&gt; Now I remember the last thing I wanted to do: &lt;strong&gt;Error catching.&lt;/strong&gt; And maybe some debugging output as well.&lt;/p&gt;
				
				</description>
				
				<category>newBee</category>
				
				<category>ColdFusion</category>
				
				<pubDate>Thu, 16 Aug 2007 06:14:00 -0600</pubDate>
				<guid>http://trond.ulseth.no/index.cfm/2007/8/16/Whats-happening-with-newBee-Kind-of-a-Roadmap</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>newBee - small update</title>
				<link>http://trond.ulseth.no/index.cfm/2007/5/23/newBee--small-update</link>
				<description>
				
				I&apos;ve added a small update to newBee today. You can grab it from the svn at Riaforge (the download zip file is not updated yet).

The update simply gives precedence to the form scope over the url scope to be used in the request scope. The request scope is what makes the controller layer pass info from the view to the model layer, so this affects how applications will work in situations where there are url and form variables named identically.

The reason for the update is that I found it to be preferable to have it this way in the application I&apos;m working with at the time.

I know that in Model-Glue (and probably other frameworks you can set which scope has precedence in the config file). Not sure if I&apos;ll introduce this in newBee.
				
				</description>
				
				<category>ColdFusion</category>
				
				<category>newBee</category>
				
				<pubDate>Wed, 23 May 2007 09:20:00 -0600</pubDate>
				<guid>http://trond.ulseth.no/index.cfm/2007/5/23/newBee--small-update</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>NewBee - now in public beta</title>
				<link>http://trond.ulseth.no/index.cfm/2007/5/15/NewBee--now-in-public-beta</link>
				<description>
				
				I&apos;ve now done the last updates to the NewBee framework that I wanted to get done before going public beta.

The framework can be downloaded from Riaforge.com (&lt;a href=&quot;http://newbee.riaforge.com&quot; target=&quot;_blank&quot;&gt;http://newbee.riaforge.com&lt;/a&gt;).

The version number now is 0.5 - I don&apos;t expect many changes before the final 1.0 version though.

So far there is no documentation expect my earlier blog posts about getting started with NewBee. Documentation will follow (relatively) shortly.

- - -

If you are new to frameworks, but would like to get started, download it - and tell me what you think.

If you are a framework junkie, and would like to add another one to your list, download it - and tell me what you think.

If you are a ColdFusion superhero and would like to help me make NewBee better, download it - and tell me what you think.

In fact - whoever you are - just download it - and tell me what you think ;)
				
				</description>
				
				<category>newBee</category>
				
				<category>ColdFusion</category>
				
				<pubDate>Tue, 15 May 2007 05:34:00 -0600</pubDate>
				<guid>http://trond.ulseth.no/index.cfm/2007/5/15/NewBee--now-in-public-beta</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>newBee on RIAForge (now with forum)</title>
				<link>http://trond.ulseth.no/index.cfm/2007/3/29/newBee-on-RIAForge-now-with-forum</link>
				<description>
				
				My before mentioned framework newBee is now on RIAForge. While the version currently in the SVN respiratory is not meant for the public (there is some stuff I need to clean up - and some documentation to be written), it is there. Mostly because I needed/wanted a SVN repository for it.

While I did not intend to go public with it quite yet, it has been reported several places that it is there, and so far the project has more than 500 views. So I see no point in not blogging about it myself :)

Today I added the forum option in RIAForge, seeing that many have been visiting and may have some questions, or other input about newBee.

I hope to get some time during Easter to finish version 0.5 which will be a stable, but maybe not optimized and feature complete version.
				
				</description>
				
				<category>newBee</category>
				
				<category>ColdFusion</category>
				
				<pubDate>Thu, 29 Mar 2007 02:18:00 -0600</pubDate>
				<guid>http://trond.ulseth.no/index.cfm/2007/3/29/newBee-on-RIAForge-now-with-forum</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>First look at newBee - part 4 (config.xml)</title>
				<link>http://trond.ulseth.no/index.cfm/2007/2/23/First-look-at-newBee--part-4-configxml</link>
				<description>
				
				First let me say I&apos;m sorry for the delay with this post. I&apos;ve been laying home with a serious case of the flue.

Ok - we saw in part 3 that the newbee.xml file holds the &quot;key&quot; for all the information flow from the view to the model and back. This is the big picture, the overview of the application of sorts.

There is one more xml file in the config directory though, simply called config.xml. It looks like this out of the box:

&lt;code&gt;
&lt;newbee_config&gt;

	&lt;!-- newBee configurations --&gt;
	&lt;config name=&quot;defaultEvent&quot; value=&quot;default&quot; /&gt;
	
	&lt;!-- application configurations --&gt;
	&lt;config name=&quot;dsn&quot; value=&quot;newbee&quot; /&gt;
	
&lt;/newbee_config&gt;
&lt;/code&gt;

The first config node called &quot;defaultEvent&quot; is needed in order for the application to know which event (specified in the newbee.xml file remember?) to run when no event is specified in the url or form scope.

The other config node is an example on how you can set application wide variables.

The idea is simply this:

newbee.xml holds the information that will not change once the application is developed, while config.xml holds information that might change with each installment of the application (like data source info, mail server info etc.).

A little inconsistency is that defaultEvent is not likely to change from installment to installment though.....

The current version of newBee is a Alpha 0.3 version. I expect it to go public beta at the 0.5 version, so things might still change.
				
				</description>
				
				<category>ColdFusion</category>
				
				<category>newBee</category>
				
				<pubDate>Fri, 23 Feb 2007 04:16:00 -0600</pubDate>
				<guid>http://trond.ulseth.no/index.cfm/2007/2/23/First-look-at-newBee--part-4-configxml</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>First look at newBee - part 3 (newbee.xml)</title>
				<link>http://trond.ulseth.no/index.cfm/2007/2/12/First-look-at-newBee--part-3-newbeexml</link>
				<description>
				
				We have seen that we can have a model cfc and a view template, that does not know anything about each other at all, but still work together.

The way we &quot;stitch together&quot; what model part and what view parts play together is with the newbee.xml file in the config directory. The newbee.xml file is wher you make all conections between the model and the view, and works a birds-eye view of what your whole application looks like.

Let&apos;s have a look at what it looks like right now:

&lt;code&gt;
&lt;newbee_controller&gt;
	
	&lt;!-- EVENTS --&gt;
	&lt;events&gt;
		&lt;event event=&quot;default&quot;&gt;
			&lt;model path=&quot;HelloWorld.cfc&quot; method=&quot;HelloWorld&quot; returnvariable=&quot;strHW&quot; /&gt;
			&lt;view path=&quot;mainpage.cfm&quot; /&gt;
		&lt;/event&gt;
	&lt;/events&gt;

&lt;/newbee_controller&gt;
&lt;/code&gt;

For now we&apos;ll look at the model and the view node defined under the event named &quot;default&quot;.

The model node has a path to a cfc, relative to the model directory (you can use subdirectories within the model directory), it has a method, which we remember from the cffunction name in the HelloWorld.cfc code we looked at. And we have a returnvariable, which we see is equal to the variable we used in our  mainpage.cfm code example.

Then theres the view node that contains the path to the mainpage.cfm file, relative to the view directory.

So we see that to instruct the controller (newBee framework) to connect the model and the view is very easy, intuitive and straightforward.
				
				</description>
				
				<category>ColdFusion</category>
				
				<category>newBee</category>
				
				<pubDate>Mon, 12 Feb 2007 04:23:00 -0600</pubDate>
				<guid>http://trond.ulseth.no/index.cfm/2007/2/12/First-look-at-newBee--part-3-newbeexml</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>First look at newBee - part 2 (instalation and basic code)</title>
				<link>http://trond.ulseth.no/index.cfm/2007/2/9/First-look-at-newBee--part-2-instalation-and-basic-code</link>
				<description>
				
				One of the basic ideas of newBee is that you should be able to put a newBee application into any directory or subdirectory (as deep down as you like) and it should run, without the need to set up any mappings and without the need to put any framework files directly under the webroot. Upload and run! Yeah baby!

So installation of newBee is to simply copy the newBee (newBee application skeleton) files, or a ready developed newBee application and put it in a directory on a CF enabeled webserver.

Ok, for some (probably most) application you will be required to set up a data source, but that is not specific for this framework.

When you have copied the newBee application skeleton into a directory you can open the application in your web browser. You should then see something like this:

&lt;img src=&quot;http://waterswing.com/newbee/view/images/screenshot1.gif&quot;&gt;

Having opened the site above you&apos;ve in fact opened up a newBee application. Let&apos;s look at some code:

&lt;strong&gt;model/HelloWorld.cfc&lt;/strong&gt;
&lt;code&gt;
&lt;cfcomponent name=&quot;HelloWorld&quot;&gt;
    &lt;cffunction name=&quot;HelloWorld&quot;&gt;
        &lt;cfreturn &quot;HelloWorld, you have installed the newBee application framework.&quot;&gt;
    &lt;/cffunction&gt;
&lt;/cfcomponent&gt;
&lt;/code&gt;

&lt;strong&gt;view/mainpage.cfm&lt;/strong&gt;
&lt;code&gt;
&lt;cfoutput&gt;
    #strHW#
&lt;/cfoutput&gt;
&lt;/code&gt;

Here we see the entire model and the entire view at work. We have a cfc which has a function called HelloWorld that returns a string, and a view page that outputs a variable. We also see that the cfc and cfm file have no knowledge about eachother what so ever. This makes the code very flexible and reusable.

Next time we&apos;ll have a look at the xml files. As said earlier newBee is the controller layer between the model and the view, and the xml files is where you &quot;instruct&quot; the controller. Don&apos;t worry, it&apos;s not hard at all. Remember &quot;Simplicity is the key&quot;.
				
				</description>
				
				<category>ColdFusion</category>
				
				<category>newBee</category>
				
				<pubDate>Fri, 09 Feb 2007 03:15:00 -0600</pubDate>
				<guid>http://trond.ulseth.no/index.cfm/2007/2/9/First-look-at-newBee--part-2-instalation-and-basic-code</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>First look at newBee (root structure)</title>
				<link>http://trond.ulseth.no/index.cfm/2007/2/7/First-look-at-newBee-root-structure</link>
				<description>
				
				So I&apos;ve decided to get newBee out in the open. I just thought I&apos;d start of by giving a very short introduction of the very basic functionality.

newBee is ment to be a very easy to learn and use MVC (Model-View-Controller) framework, where newBee acts as the Controller between your Model and your View files. Simplicity was my guiding word in making this framework.

The purpose is that your Model and View files should not know about each other. The goal is structure, re-usability and maintenance of your code.

So here is the root structure of a newBee application:

- Model&lt;br /&gt;
- View&lt;br /&gt;
- Controller&lt;br /&gt;
- Config&lt;br /&gt;
- application.cfm&lt;br /&gt;
- index.cfm

So, as you&apos;d guess, your model (cfc&apos;s) goes into the Model directory. Your view files goes into the View directory. The controller directory contains the newBee framework files (you should not go in here unless you want to modify the framework itself). The Config directory holds the XML files you use to &quot;instruct&quot; the framework.

The application.cfm and index.cfm files should also be left as they are.

This was the simplest root structure I could think of for a MVC framework. Remember &quot;Simplicity is the key&quot;.

Later today I&apos;ll try and get time for posting some code.
				
				</description>
				
				<category>newBee</category>
				
				<category>ColdFusion</category>
				
				<pubDate>Wed, 07 Feb 2007 02:56:00 -0600</pubDate>
				<guid>http://trond.ulseth.no/index.cfm/2007/2/7/First-look-at-newBee-root-structure</guid>
				
			</item>
			
		 	
			</channel></rss>
<SCRIPT language="Javascript">
<!--

// FILE ARCHIVED ON 20080103021528 AND RETRIEVED FROM THE
// INTERNET ARCHIVE ON 20100801043844.
// JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE.
// ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C.
// SECTION 108(a)(3)).

   var sWayBackCGI = "http://web.archive.org/web/20080103021528/";

   function xResolveUrl(url) {
      var image = new Image();
      image.src = url;
      return image.src;
   }
   function xLateUrl(aCollection, sProp) {
      var i = 0;
      for(i = 0; i < aCollection.length; i++) {
         var url = aCollection[i][sProp];         if (typeof(url) == "string") { 
          if (url.indexOf("mailto:") == -1 &&
             url.indexOf("javascript:") == -1
             && url.length > 0) {
            if(url.indexOf("http") != 0) {
                url = xResolveUrl(url);
            }
            url = url.replace('.wstub.archive.org','');
            aCollection[i][sProp] = sWayBackCGI + url;
         }
         }
      }
   }

   xLateUrl(document.getElementsByTagName("IMG"),"src");
   xLateUrl(document.getElementsByTagName("A"),"href");
   xLateUrl(document.getElementsByTagName("AREA"),"href");
   xLateUrl(document.getElementsByTagName("OBJECT"),"codebase");
   xLateUrl(document.getElementsByTagName("OBJECT"),"data");
   xLateUrl(document.getElementsByTagName("APPLET"),"codebase");
   xLateUrl(document.getElementsByTagName("APPLET"),"archive");
   xLateUrl(document.getElementsByTagName("EMBED"),"src");
   xLateUrl(document.getElementsByTagName("BODY"),"background");
   xLateUrl(document.getElementsByTagName("TD"),"background");
   xLateUrl(document.getElementsByTagName("INPUT"),"src");
   var forms = document.getElementsByTagName("FORM");
   if (forms) {
       var j = 0;
       for (j = 0; j < forms.length; j++) {
              f = forms[j];
              if (typeof(f.action)  == "string") {
                 if(typeof(f.method)  == "string") {
                     if(typeof(f.method) != "post") {
                        f.action = sWayBackCGI + f.action;
                     }
                  }
              }
        }
    }


//-->
</SCRIPT>

