Tuscany, Italy

4 days / 20 talks
Awesome and great speakers

October 16-21

Michael Monschau

Michael grew up and was educated in Germany and moved to England age 19 where he first worked with computers creating a staff rota system using Pascal. He joined the Omnis Software (then Blyth Software) engineering team at Mitford House in 1989. Having worked in core engineering since Omnis 3 Plus, Michael has been responsible for the design and implementation of many Omnis features that developers enjoy today. He was a key person in charge of various large projects when Omnis Studio was conceived, such as the design and implementation of the cross-platform graphic, windows and printing modules, the new window and report design modes, printing devices, and the web-client and javascript-client technologies.

In 2003 Michael formed Brainy Data, a company dedicated to providing consultancy services to Omnis developers, and over the years designed and developed Omnis software components such as OWrite, JS-OWrite, PDFDevice, OCal and JS-Signature.

During 2010 and 2011, Michael designed the Omnis Studio Javascript Client SDK and helped Omnis Software (then Tiger Logic) with the Omnis Studio 6 Javascript Client development. Ever since, Michael and his son Perry (who has an MA in Artificial Intelligence) have worked tirelessly porting Brainy Data software to the Omnis Javascript Client.

XCOMP development: Creating Custom Constants – 2 of 2

Inside JS-OWrite

Find out what we learned about writing JS-Client controls for Omnis Studio: the pitfalls, the tricks, the choices, browser differences and more.

The focus of this session will be the trials and tribulations we experienced while developing JS-OWrite. We will explain the choices we made, performance issues we had to consider, mistakes we made and tricks we discovered. During this session we will expose some of the inner workings of JS-OWrite to demonstrate how we dealt with async challenges, cross-browser issues which other editors (such as WebODF) failed to overcome, how we used local storage, why we used the iframe architecture and much more. This session will be presented by both Michael and Perry.\

You will learn about:-
* consequences of async client/server architecture
* pros and cons of iframes (the postMessage gotcha)
* obvious and less obvious uses of arrays and objects
* using local storage
* cross-browser font issues (the WYSIWYnearlyG problem)
* CSS, HTML and the box model
* why we did not use SVG
* the joys of text selection
* minifying (benefits and risks)

Inside Omnis Notation: Studio 8/9

Find out the difference between built-in and custom notation, how to squeeze extra performance out of methods, what notation to use in JS Client, and learn about the structure, intricacies, pitfalls and benefits of notation within Studio 8/9 and earlier.

This session aims to give an inside view of notation: explain what notation is, how it works, and how the use of notation differs or is similar within JS Client-, Omnis Server- and Fat-Client programming. The session begins by covering the basics such as the overall concept, different types of notation, notation shortcuts, optimisation tricks and notation\’92s role in inheritance. Following this, the session advances to more specialised notation relevant to Reporting, List handling, JS Client, Omnis Server programming, Desktop Client programming, etc. Notation is a vast subject and, time permitting, some choices will be made jointly as to which specialised notation the session will cover.

You will learn about:-
* notation as a hierarchical description of the Omnis environment
* the difference between build-in and custom notation, properties and methods, instance and class notation.
* the power of notation in manipulating window/remote forms and their objects.
* the benefits and relevance of notation in inheritance.
* different performance tricks that can be utilised within sever-client and fat-client models.
* notation new to Studio 8/9
* notation and the Studio 8/9 code assistant

Optional subjects:-
* Java Script Client (server/client module overview and detailed look at special client and server notation)
* Special Interest Notation (object variable, complex grid, list notation, report notation)

Writing External Components

This years XCOMP session will focus on creating non-visual external objects which are the perfect medium for adding additional non-visual functionality to Omnis. This is an all-day session (morning and afternoon).

Last years session focused on creating an external library that was capable of adding custom constants to the Omnis Studio Catalogue. It involved reading constant descriptions from an external JSON file and converting them to a format required by Omnis. The aim was also to provide a mechanism for adding typed constants to Omnis, but there was not enough time to complete this work.\

This year we will build on last year\’92s work and add a non-visual object to the library which provides functions for returning typed constants. It does not matter if you did not attend last years session as we will go over what we did last year and help will be at hand to create your first XCOMP project.\

Knowing how to add non-visual external objects to Omnis is a highly useful skill as it opens up vast amounts of functionality for tight integration into the Omnis language.\

You will learn:-
* how to create a c++ project using XCODE or Visual C++ Express
* what is required to write an Omnis external library for registering constants
* a way of simulating typed constants using a non-visual object
* about the Omnis external SDK
* about various uses for non-visual objects and how to subclass and override the object’s functions in Omnis code

Writing JavaScript Controls

Learn how to develop custom remote form controls using the JSON control editor and how to display rich content that interacts with an Omnis list (no C++ required).

This session will focus on writing your own javascript client component using the Studio JSON control editor and what is required to write a JS client interface that interacts with an Omnis list. We will take a closer look at the automated Javascript the JSON control editor produces and what is left for us to do. Finally, the session will introduce the steps that would be required if a design interface for visual feedback was required.

You will learn:
* how to create a custom JS control using the JSON control editor and Javascript
* what is required to write an Omnis JS control design interface
* about the JS SDK (C++ and Javascript).



Follow Michael




About workshops


You’ll sign up for the session you want to attend on a first-come, first-served basis. Up to 6 participants may attend a session, if full, you can sign up for the same topic at a different time. During the session, the speaker will guide the audience through the main topic but you will be able to ask him/her to deviate and cover related areas. Sometimes participants offer new ideas and solutions to a problem.

Check the


Pursue any question or area not directly related to the core topic. Every speaker hosts at least 4 sessions which means there are about 11 to 12 simultaneous sessions running all the time with an average of 5 or 6 participants

Meet the Speakers

Check the


Flexible conference format means you can choose the best classes for you and at the best time. Some sessions will be repeated, so when you miss one, you can attend the same session later in the day or the week.

Check the Schedule