Brainy Data Michael was born and raised in Germany. After leaving main stream school he trained as a plumber and at the age of 19 moved to England. He had his first encounter with computers a few years later, when as assistant manager in a residential home, he developed a staff rota system using Borland Pascal. In 1989 he joined the Tiger Logic (then Blyth Software) engineering team at Mitford House; initially in the role of release engineer, but progressing quickly to core engineering. Having worked in core engineering since Omnis 3 Plus days, Michael has been responsible for the design and implementation of many of the Omnis' features that developers enjoy today. He was a key person in charge of various large projects when Omnis Studio was conceived and developed, including the design and implementation of the cross-platform graphics, windows and printing modules, the new window and report design modes, printing devices, and the web-client technology, to name but a few.
Session Info: All session have been updated for Studio 5 or compatibility tested with Studio 5. 1) Notation: from realisation to optimisation (updated for 2010) History Notation was the dawn of a new age in the Omnis programming world. There was some resistance in the early days, there is still some to this day. Omnis had been purely command orientated, with an intuitive point and click interface for customising the 400+ commands that drive the Omnis application. Notation is text based and in the early days, little help was provided as you typed, rendering it incomplete, sometimes difficult to comprehend, and to the traditional Omnis developer very cumbersome. As developers began to realise the additional intricate levels of control and powers of manipulation that notation provided, the benefits very quickly began to outweigh its short-comings. Much has changed since then. Notation paved the way to the new Omnis Studio design environment, the external interface, table classes, and so much more. Today, most of Omnis Studio code that is written contains some form of notation. In short, the implementation of notation was probably the most important technology shift in Omnis history. Session Details The following are just some of the suggested session options a) The Basics: This session aims to explain how notation works, and demonstrate its possibilities. You will learn:- the difference between build-in and custom notation, properties and methods, instance and class notation. You will also learn the benefits of notation in:- inheritance, initial value calculations, table classes, complex-grid exceptions, and custom messaging. We will also be looking at the power of notation in:- manipulating windows and objects, controlling reports, optimising method execution, and much more. b) Complex-grid: A more in-depth look at complex-grid exceptions. This short session demonstrates the possibilities of complex-grid exceptions. c) Messaging: Using messaging to reduce complexity and potential program errors. This short session demonstrates some of the benefits of using messaging in your class instances. d) Translations: A short session having a look at an alternative way of using string tables. New for 2010 - a more in-depths look at some of the advanced report notation. 2) Studio event handling: from $event to $control History Omnis Classic and Omnis Studio event handling appear very different indeed if one goes by appearance alone. But it wasn't a complete rewrite. However, besides being more intuitive and extendable, the Omnis Studio event handling is incredibly more efficient. The new design paved the way to better external component integration, greater flexibility in creating more and more specialist events for the more complex window objects, and it is far more suited to the object orientated design. Also, it has increased the interaction between window objects and method code exponentially. Session Details In this session you will learn how to write efficient event handlers, the benefits of $control and inheritance in event handling, do's and don'ts, pitfalls and short-comings, tricks and conventions. 3) Advanced external component development (updated for 2010) History As time moved on in the Omnis core group, engineers moved on and new engineers were hired. Many new engineers had great difficulty in getting up to speed with the Omnis source base. It had become antiquated and difficult to maintain in some key areas. The areas in question had mostly to do with interface handling. During the early design stages of Omnis Studio, this issue was thought about and the decision was made to design a cross-platform window and graphics module that was based on the environment best known to C++ engineers, the MSWindows HWND and GDI SDK. These modules also provided the basis for the external component interface. Some other Omnis core modules such as the data field, data list and CRB data handling modules were also exposed. Later, the print manager module was added to the suite. Today, external components have access to a vast API that truly integrates them into Omnis and makes them appear as if they were an integral part of the environment. Session Details For 2010 you will be building your first generic external printing device. You will learn how to register a device with Omnis, what custom device parameters are, and how to receive printing objects and what to do with them. Time permitting we will also be looking at how we could improve on the existing HTML external device considering advances in style sheets and the HTML box model. IMPORTANT: For this session you will require XCode version 3.2.2 or better, or Visual C++ Express 2008 or better. You will also require Studio 5 for testing your components and please download the external component SDK from the Omnis website. Knowledge of C++ is not essential, but a prior visit to Kelly Burgess' building externals session would be of great benefit. 4) Web-client: the class instance in cyberspace History At the time of the Web-client conception, Omnis Studio had been around for a while, and much work had been done. New design interfaces, a more complete notation, a far superior event system and the Omnis core code had some well defined and documented modules that provided a powerful interface for developing external components. All these technologies provided key ingredients for the next leap of technology. Two Omnis core engineers, now having time to breathe, set about thinking of the internet and how Omnis needed something web-ish. It was clear right away that external components would play a key part. And then came the brain-wave: The interface sits on the client, the code executes on the server, and the Studio event handling to tie the two together. The class can be designed as one object and Omnis takes care of splitting it up! The class instance that crosses the internet was born. This was new. This was exciting. An internal white paper was produced and management quickly approved the project. Work began. Back then, internet speeds were still slow, so size was a big consideration in the initial development phases. This was a new arena for the core development team. Pretty much every core engineer was involved. No one had any concept about how well the Omnis server would cope. So things were kept simple. Almost as an afterthought, the possibility of HTML based forms communicating with Omnis using a similar mechanism, was realised, and the ultra-thin client was born during the final stages of this project. Once the web-client was released, developers quickly made demands for more and more functionality, and the web-client technology has been growing constantly ever since. Session Details This session will explain the technology behind the web-client, discuss design considerations, consider multi-threading issues, demonstrate optimisation tricks, and explain limitations and pitfalls. You will also learn about ultra-thin client and its possibilities, when it is appropriate to use web-client and when it would be more advisable to use the ultra-thin client. 5) "OWrite Plus": an interface to your data History With over 100 Omnis developers using "OWrite Plus", and probably tens of thousands of users relying on them on a daily basis, this suite of components has grown in importance in a relatively short space of time. Its secret of success lies in the design. Some years earlier, while working as a Senior Core engineer in Mitford House, Michael was asked to research what the next generation ad-hoc report tool should look like. He could have looked at a number of tools, including Crystal reports, but just a few hours into the task, he had a 'aha' experience and needed to look no further. It was obvious that it should look and feel like something most users were familiar with. And there was only one tool he could think of that would fit that criteria, Microsoft Word. So the answer was simple, a reporting tool should look and feel like a word processor, but right from the start, be designed to directly access data from a database. It had to be capable of merging complex data with rich text content at a click of a button. A white paper was produced, but this concept never made it of the drawing board. Not long after, Michael resigned his position at Raining Data and formed Brainy Data :-) with the intention of providing consultancy services and external components to Omnis Developers. As a strange coincident, he was contacted by a former colleague (thank you Larry) who was now working for a large US company (InStar) in need of a word processor component for Omnis with reporting capabilities. A deal was struck and OWrite was born. OSpell2 already existed at that time and was quickly integrated with OWrite. The same company was also in need of a cross platform PDF generation tool and within a year, the "OWrite Plus" suite was developed. Session Details This session is aimed at developers who already use any of the "OWrite Plus" software components, but anyone is welcome to find out more. It will cover some of the advanced features of these components, design consideration, and everything there is to know to make the most of the technology. 6) 2009 and 2010 addendum Session Details This small evening session covers all the new stuff added for EurOmnis 2009 and 2010, so you do not have to sit through the entire notation session again. Object classes and object references: Short session on the power of object classes and object reference variables. Complex grid exceptions: New examples demonstrating the use of exceptions. Messaging: Using messaging to reduce complexity and potential program errors. Translation: A short session having a look at an alternative way of using string tables. Report Notation: A more in-depths look at some of the advanced report notation. Thursday evening: Advanced OWrite +/+ Q&A Michael will be holding an informal technical Question & Answers session Thursday evening between 19:00 and 21:00. In this session you may ask about specific problems or challenges you have using OWrite, PDFDevice, OSpell, OGantt and OCal. Michael will do his best to resolve them there and then, if at all possible. To get a head start, you may already send an e-mail outlining some of the problems that you are experiencing or areas you would like to know more about. It will give Michael a chance to perhaps prepare some solutions to save time during the evening. Please send these e-mails directly to michael@brainydata.com. back to top Back |

