Saturday, July 26, 2008

 

Quiz made easy

I just finished integrating the Jetfire Quiz into the system. The quiz that I wrote using the Jetfire scripting language was quite simple:

  • What is your name? __________
  • Are you over 18? (yes/no)
  • Select an age category: 18 to 25, 26-35, 36 – 45, over 45
  • How often do you go dancing in a year? ___

From a code perspective, the Quiz is a set of Questions and Answers. Answers may be text, numeric, yes/no, a selection from a list, date and time, and duration.

A new Web Control is provided (in the website) to iterate over the list of Questions and Answers, providing the user with the ability to input answers. The quiz can be viewed using this custom control.

The real reason for this blog is to brag about just how simple it is to write your own Quiz. My friend, Mo, wrote a quiz in 30 minutes this morning. Mo owns a Print shop in Ottawa, has a Computer Science degree from over 20 years ago and hasn't programmed in a whole lot of years. Mo is a smart guy, but not a programmer. He needed a little bit of help with syntax, but since he uses Excel extensively, he was a natural to write his first Jetfire workflow.

Since I hit him cold with "you are designing a quiz right now", most of the time was spent formulating the questions and answers about the travel quiz that he wanted to write. His travel quiz includes the following questions:

  • What was your favorite destination? ________
  • Select your Sex: Male, Female
  • Select a destination: North America, Europe
  • Select an age category: Under 18, 18 – 35, 36- 50, over 50
  • How often do you travel in a year? ____

Less than five minutes later, I had the privilege of being the first to fill in his quiz.

Sound like fiction? With Jetfire, you upload the Jetfire code and start using it immediately. This is possible because Jetfire is a scripting language and re-uses the Question and Answer Web Control described above.

Labels:


Thursday, June 12, 2008

 

Hello World with Jetfire

It has become a tradition the first program to introduce a user to a programming language is "Hello World". We thought it would be appropriate to have a "Hello World" program for Jetfire (download site) as well; however we were concerned that it didn't really show how Jetfire is different from everything else. Well that is the point. Jetfire it is not different when it comes to writting code to solve a problem, but it is radically different, in that it is a whole lot simpler, when you try to solve real world problems with Jetfire.

Well what do we mean by a lot simpler. Well lets look at "Hello World".

namespace test
{
workflow HelloWorld
{
DateTime creationTime = DateTime.Now;
public string Hello
{
get{return "This workflow was created at:" + creationTime.ToString();}
}
}
}

On the surface it looks almost like C#. The only significant difference is that 'class' has been replaced by 'workflow'. Other than that it is valid C# code.

So what is the difference? Why bother with Jetfire? Well the big difference is that Jetfire really starts where C# ends. For example, once a Jetfire instance of the HelloWorld object is created it is persistent until it is deleted. That is why there is a time stamp in this example so you could see when each instance was created. Try it for yourself.

In C# to make an object persistent you need to write code to save it to database or a file. Yes, you can serialize the object; however then serialization breaks if you change the code, and so on. With Jetfire there is nothing more to do. The objects and code are persitent. When the code changes a new version is automatically created.

This is part of goal of having the programmer focus on the problem, not the programming infrastructure. Hopefully the "HelloWorld" example gives some introductory insight to the features of Jetfire.

Labels: ,


Wednesday, September 26, 2007

 

Jetfire is born

Blogging has taken a back seat over the past few months while we have been working on Jetfire - a new approach to designing workflows. Well, Jetfire has arrived and blogs should start coming.

Labels:


 

Jetfire debut at Ottawa Demo Camp

Monday, Sep 24, 2007
John and Charlie present Jetfire Workflows to an Ottawa developer audience. (See FAQ at http://Jetfire.ca/pages/JetfireFAQ.aspx for more info.)

The demo showed a DVD Tracking application. DVD's are added to Jetfire and tracked by Home, On Loan, Lost and Dead states. Commands, e.g. Lost, Found, Died) and Properties (On Loan To, Loan Timestamp, Returned Timestamp, and Lost Timestamp) are displayed on a general Web Demo available to ALL Jetfire workflows.

The Jetfire code, written in a C#,Java-like language was developed by John and Charlie at TrackerRealm. The language is workflow specific and makes it quick and easy to write workflows.

Demo key figures include:

Bottom line: Comments like "Is that all the code there is?" tells me that we are on the right track.

Test Drive Jetfire yourself at http://jetfire.ca/Pages/JetfireDownload.aspx

The DVD workflow (100 lines of code) is shown at http://jetfire.ca/Code/Apps/DVDInventory.txt.

Labels:


Friday, March 16, 2007

 

What is Workflow EcoSystem?

Workflows have recently gained a lot attention since Microsoft introduced a workflow engine as part of .Net release 3.0 and have workflows integrated with Office 2007 and SharePoint. Workflows as mechanism to automate applications have been around for while. We have had a Workflow engine for several years.
What is clear is that to use workflows as sucessful automation tool a complete ecosystem is required. Our view is that a complete workflow ecosystem consists of 5 key components.
5 Key Components of a Workflow Ecosystem
  1. Workflow Designer
  2. User Interface
  3. Data Persistence Layer
  4. Data Report Generator
  5. Workflow Engine

A white paper, Attributes of a Complete Workflow Eco-System, has been put together that describes what attributes are required of each of the key components.

Labels: ,


This page is powered by Blogger. Isn't yours?

Subscribe to Posts [Atom]