Roger Linssen's blog
Blaise NG Installation
We are receiving some problem reports regarding the installation of Blaise NG.
In some cases, the installation procedure (BlaiseNG.exe) does not correctly check the .NET framework version.
We have fixed this problem, and we have updated BlaiseNG.exe on our FTP servers.
We still urge you to try out Blaise NG, and give us feedback.
Blaise NG CTP
Greetings earthlings,
A few minutes ago, we have released the first version of Blaise NG !
This version is a Consumer Technology Preview release, the result of phase 1 of the Blaise NG project, intended to show the strategy and progress of the project.
We expect to receive feedback from our customers on the usability of the product.
If you are a member of the BCLUB, you will get an e-mail from Asa Manning regarding the download details.
We have put a Getting Started video on YouTube:
Have fun with this release, and let us know what you think!
Release notes:
What is NOT included in this release:
- Manipula/Maniplus
- CATI
- CARI
- Delta
- Basil
- Bascula
Things that work:
- Creating data models
- Viewing meta data
- Modifying layout
- Data Entry in a Windows Data Entry Program (DEP)
- Data Entry in a browser
- Viewing data
Things that don't work:
- Lookups
- Tables
- Runtime parameters
- Editing templates (you can only use the templates that we provide)
- Probably a hundred thousand other things
Concepts that have been renamed:
- Menus -> Master Page Templates
- Modelib -> Master Page Templates / Field Pane Templates
- Internet Workshop -> Layout Designer
- Datamodel Properties -> Layout Designer
Blaise NG Progress
We are working very hard to get a Community Technology Preview (CTP) release of Blaise NG ready before the end of the year.
The status of the various project parts is as follows:
Control Centre
We have rewritten a substantial part of the control centre, because some of our users didn't think it was a good idea to store Blaise source files in a database. Furthermore, we have changed the way the control centre handles projects.
Language
Most language constructs are now supported in Blaise NG. There are some special cases, like alien routers, that haven't been implemented yet. The XML2BMI tool, which converts Blaise NG meta files into Blaise 4.8 meta files, is in the testing phase.
Syntax Editor
For the CTP release, we are not going to change very much in the syntax editor. It already supports syntax highlighting, code snippets, intellisense, and code completion.
Datamodel Designer
The datamodel designer, with which you can graphically design a questionnaire, is not ready by far. It has proven to be much more difficult than we had expected. For now, we have to decided to leave it out of the CTP release.
Layout Designer
We still have a lot of work to do on this part of the project. We have made a rudimentary version of a template designer (the WYSIWYG equivalent of the modelib editor). We have hired an external designer to help us create nice-looking templates.
Meta Viewer
The meta viewer is ready.
Runtime
We have a working version of the Data Entry Service ready. It is possible to fill out a questionnaire both online (using a silverlight-enabled browser) and offline (using our WPF data entry program). The rules are executed by the Blaise 4.8 API service, and the data is stored in a Blaise database.
Data Viewer
We have a simple version of the Data Viewer ready. It does what it's supposed to do: show data.
Documentation
Documentation is complete. Well, almost. Okay okay, we still have to write the documentation. But we have started a documentation project, and we have selected a tool with which we can create a CHM help file, a web site of the help file and a PDF-version of the help file, which can be used to print a book. We are currently looking at the Blaise 4.8 help file to see which parts we can reuse in Blaise NG.
Installation
We have licensed InstallShield 2010 as our tool for creating our installation. The .NET framework 3.5 (SP1) and Silverlight are required to run Blaise NG, so we install them before starting the Blaise NG installation.
Conversion
We still have to write an import tool, with which you can convert your Blaise 4.x datamodels to Blaise NG.
As we are nearing the CTP release, we need to have a testing strategy. We have decided to hire an external tester, who is going to create a test plan and help us set up an automated testing facility.
Blaise NG Progress
The last couple of months, we have made a lot of progress with the Blaise NG project. Time for an update!
Click on the following link to see the components that are needed to complete Phase 1:
Blaise NG Phase 1 Architecture
Blaise NG Control Centre
The Blaise NG Control Centre is an important part of Phase 1. Our primary goal for this program is to be able to create and/or edit Blaise data models, and compile them into Blaise NG meta and layout files.
As mentioned in my previous blog entry about Phase 1, we have three designers for data models: a text editor, a graphical rules designer and a layout designer.
Text Editor:
Click on the following link to see how the Text Editor will look:
Text Editor Preview
Rules Designer:
Our initial thought was to use an existing graphical library (ILOG) to produce the output we wanted. Unfortunately, the ILOG components didn't prove to be the solution to our problem. We have recently decided to drop the ILOG components completely, and build the Rules Designer in WPF. Alas, no preview for the rules designer yet.
Layout Designer:
We have looked at several programs, and we have decided that Microsoft Powerpoint has many similarities to our Layout Designer. We have therefore adopted the layout that Microsoft uses in Powerpoint. Click on the following links to see the progress we are making:
Layout Designer Preview 1
Layout Designer Preview 2
Layout Designer Preview 3
XML2BMI
Phase 1 focuses on compatibility. To ensure compatibility (and to limit the scope of Phase 1), we want to reuse the Blaise 4.8 API service to handle the execution of rules. To accomplish this, the XML2BMI component will transform Blaise NG meta files into Blaise 4.8 meta files, which can then be used by the Blaise 4.8 API service.
Transforming the Blaise NG meta files into Blaise 4.8 meta files is not an easy task. It's going to take a lot of time to complete this task.
Blaise NG API
The Blaise NG API will contain all the logic necessary for the Blaise NG Data Entry Program to function properly. Its main functions will be:
- Provide access to metadata (get information on fields)
- Provide logic to access to databases (read/write records)
- Provide logic to execute the rules of a data model
- Provide access to the layout of pages and questions
For several parts of this logic, we will connect to the Blaise 4.8 API service to cough up the result. For others, we will need the Blaise NG Meta and Layout files.
Blaise NG DEP
The Blaise NG Data Entry Program will be available in two flavors:
- A Windows-based DEP, written in WPF
- A Web-based DEP, which uses Silverlight
The trick is to use the same code base for both alternatives. As Silverlight is a subset of WPF, we cannot make use of the complete functionality of WPF. Luckily, Microsoft is still working on Silverlight, hopefully improving the compatibility with WPF. We found an example, which shows a very neat Silverlight application. Click on this link to see the application. If it works (and I am not sure it does, because it uses some beta stuff), select the New Account option on the left hand side, and choose the 401k of 529 account.
Customer Visits
The last few weeks, we have visited several of our customers. In random order, we have visited the University of Michigan, Statistics Canada, China and Israel.
We think that staying in touch with our customers is very important. Our customers are very heterogeneous, and we like to see how our product is used, to be able to improve our software where needed.
We are glad to see that most of our customers have migrated to Blaise 4.8. We have collected remarks and bug reports from customers all over the world, and we are now ready to build a new Blaise 4.8.1 version, that solves all reported problems.
This week, we will try to finalize and release that version.
Blaise NG Phase 1
For now, it seems that releasing 4.8.1 has been a good thing. We haven't seen any showstoppers so far.
We have decided to minimize the work on Blaise 4.8, and focus on the Blaise NG project.
Of course, bugs in 4.8.1 will be fixed, but we don't want to invest in extra features in the 4.8 series.
We are planning to have phase 1 of Blaise NG ready by June 2009, which happens to be the month in which the IBUC in Riga will be held.
Phase 1 of Blaise NG will focus on three parts:
- Layout
- Compatibility
- Unicode
It should be possible to take existing datamodel sources (bla, bml, bxi, bmf), load them into the Blaise NG Control Centre, and run them in the Blaise NG Data Entry Program(s), without changing anything.
The layout of result will look different, but the behaviour should be the same.
The new Control Centre will have three different editors/designers:
- Text Editor. This is a state-of-the art editor, with features like syntax highlighting, intellisense, bracketing, etc. We have actually purchased this editor from a company called ActiPro (http://www.actiprosoftware.com/Products/DotNet/WindowsForms/SyntaxEditor...).
- Graphical Rules Designer. This designer will let you create a Blaise datamodel in graphical way. We are still experimenting with graphical objects to create the best user experience possible. We have purchased a component library, that we can use to build this designer (http://www.ilog.com/products/diagrammernet/index.cfm).
- Layout Designer. This designer is the replacement for the different parts in Blaise where you can define layout (Layout paragraph in the data model, Modelib Editor, Menu Editor, Internet Workshop, Datamodel Properties, ...). We want to use WPF (Windows Presentation Foundation) to render layout for us. On the internet, a subset of WPF is available through Silverlight.
Because the new Control Centre is written in .NET, it has Unicode support. Unfortunately, current Blaise meta and data files don't support Unicode. Therefore, we will have to make modifications to those files to support Unicode.
Blaise NG
October 7, 2008
Today we had a brainstorm session about the possibilities for layout in Blaise NG. We have been making prototypes in WPF for some time, and it is time to tie things together, and make some decisions. The general idea is that we can reuse the current concepts, but upgrade them to the 21st century. The main part of the discussion focused on whether it is possible to remove layout sections from a bla-file, because we feel that these sections don't belong in a data model. The idea is to put layout statements in a different file. Layout can then be edited graphically or in an editor, by changing the layout file. The question is: will it introduce problems if we handle layout in this way. For now, we are going to go ahead and store layout information in a different file (which means: convert existing bla-files into new ones).
We also discussed newpage instructions in the layout section. The general consensus was that newpage instructions are used to accomplish some sort of grouping. We discussed the possibility to assign a fieldpane to a block field. Such a fieldpane would have to have placeholders for all fields in a block. Discussing this further, we found that we would also need to have a way to describe the behaviour of such a group.
For instance, suppose we have the following piece of code:
DATAMODEL Test
BLOCK BOtherSpecify
FIELDS
Color: (red, green, blue, other)
OtherColor: STRING[10]
RULES
Color.ASK
IF Color = other THEN
OtherColor.ASK
ENDIF
ENDBLOCK
FIELDS
OtherSpecify: BOtherSpecify
LAYOUT
AT OtherSpecify FIELDPANE fpOtherSpecify
ENDMODEL
This shows the idea that we tie a fieldpane to a block question
The definition of fpOtherSpecify would have to include placeholders for both Color and OtherColor
Furthermore, we want the field OtherColor to be focused the moment we select 'other' in the Color field. This type of behaviour is something that we would want to specify in the defintion of fpOtherSpecify
To be continued...
First bugs
October 6, 2008
It was too good to be true. Of course, the first bugs were found within hours after we released 4.8.1 last Friday.
For now, we have found that the bug we solved in the CATI service (which keeps flooding the system event log) was not incorporated in this release. Furthermore, in solving a bug with special characters in the internet part, we introduced a new bug, which is far worse than the one we tried to solve with it. We also found some small issues in the internet part, and we discovered that externals in XML format are not recognized by the parser.
No rest for the wicked.
Blaise 4.8.1
October 3, 2008
We have finally released Blaise 4.8.1, months after we planned to.
There was a lot of pressure on this release, both from Statistics Netherlands and from some of our external customers. We decided we would release a final version only after we had a good feeling about the release ourselves.
The last few months, we have been working on getting the internet part stable, which was not easy at all. We got help from Microsoft, sending them crash dumps, and receiving detailed analysis back. We finally managed to sort-of solve the crashes, by keeping components in memory, which also speeds up things :)
I am convinced that we haven't solved the real problem yet, but all stress tests indicate that the system is stable now.
Our FTP server is very slow at the moment, we are about to be 'virtualized', our internal network is failing regularly, so we couldn't pick a better moment than this to release 4.8.1
So here goes nothing!