The project I called: Eloquent
My efforts at KGO since 2006, developed a method for coding a smarter interface, saving time by providing preset content. The long-term development of this User Interface (UI) project yielded a super, control template series with an integrated style guide, within limitations of a MOS object Active X protocol.
A mentor of mine always stressed keeping the entry simple in any UI. For example, using text labels rather than cryptic symbols for intuitive operation. Also, using color and entry cues with a fast and dependable preview of the layout - all of this driven by clean and efficient code. "That my friend, is eloquent work" he nodded with approval. I've remembered quite well this advice and praise from my early days.
Coding is an art. It looks like engineering. Where the two meet, eloquent.*1
This process helped me develop an MOS template methodology. This methodology is critical for efficient team construction within a short timeline. KGO subcontracted integration to Reality Check Systems in Burbank, California. I provided the initial template layout to the team with template guidelines, variable naming conventions, and layer construction blueprint.
I adapted the KABC package elements into three distinct Transition Logic (TL) groups:
Full-screen with overlay
In most play-out systems, the UI controls the various layers and animation status. Fewer TL groups provide maximum flexibility. However, the super-templates are larger due to the multiple TL layers acquired by group consolidation. The rendering hardware and package efficiency was excellent, so more strain could be placed on the display engines, providing maximum scene flexibility.
Key construction goals: By coding each TL layer with a prescribed nomenclature for each object variable, template variations are quick to construct via cut and paste once, the Modular Functions are built. The second construction goal was the reduction of UI code and graphics. One of the project's overall rewards, using these methods, was reducing the record size for retention and network traffic management.
Here is an example of the methodology. I'll highlight the UI Folder Object benefits.
For coding efficiency, I utilized a VB Folder Object. An interface option for this object provides a Button layout rather than a Folder tab appearance. The main benefit of this tool allows the folder window to control window content visibility when selecting the various tab. The smarter method here means checkboxes and text entry boxes are displayed only when appropriate to the set of controls in the active layer.
Less code and very clear functionality. Folder Object can be added into a window of a previous Folder Object, provides cascading options and presets.
The two images above demonstrate how the upper display status button selection offers the various layout options. The coding driven by the Folder Object can be a simple case function that updates conditions for the layer. Since input and check boxes visibility is handled by the object, this method alone, reduced better than half the code required from our previous version.
Opening the Hood for a closer look at the tab hierarchy link to the scene construction (VizRT)
In the above, the options in the scene layer are stacked in the (colorful) sorting connected to the Frames choices buttons in the control template below.
In a hierarchy, the frame variations are enabled based on the tab index value. That value will drive a scene object selector (OMO), like two knobs linked by a gear. As stated previously, not having to code for object visibility in the UI meant fewer lines of code. A single line statement drives the scene variable. Therefore, smaller MOS records for longer retention and overall efficiency, meeting the overall project goal.
The broader goal was to provide a smarter UI. Example above, the Highway Sign preset options, notice that the User can select the region's sorted list or if necessary, manually input and select the desired element.
An additional methodology to note here, is the Cyan color coded "helper" cues. If it's Cyan, the preset functions will provide an "efficiency" in the Producer's work.
If I can save you minutes a day, that adds up to significant time savings over the year.
My next iteration planned for content ease would include additional RSS or Database-linked content. Every display system manufacturer is expanding, shifting with the ever changing Social Media Networks connectivity protocols.
A word on user confidence: Once a user loses confidence in the system, more trouble ensues. When first adopted, VizRT preview service was buggy and users lost any confidence. KGO spent significant time with Viz RT to provide an accurate preview service with dual servers. Rebuilding confidence in a troubled system was quite the challenge. Time spent on the preview service has provided a system that has months between failures with a simple restart to restore service. Confidence has been restored.
One of the most critical parts to this project was receiving feedback from the Users. Having open communication with the Newsroom staff will provide a wonderful opportunity to adjust the work method. Many of the functions in these templates were suggested by the team. Their operation will shine a light on repetitive UI tasks that can be simplified into a function. Also, I would observe the Newsroom work to provide more insight into functionality. Listening and observing are critical for best results.
This article demonstrated a few points in template construction. Consideration of hardware demands, the need for a smaller records, flexibility, and ease of use for daily production will continue to be the central focus in my continued project development.
Snapshots above have many other tools to demonstrate. Future posts will demonstrate addition debugging tools and tips.
Finally, I really enjoyed this project at the fulcrum of the Newsroom, IT engineering, and Design. It was a fulfilling experience to hear everyone's needs and to meet most of the requests. It was a personal success, at the end of a tedious process scrutinizing the details.
1. using language to express ideas or opinions clearly and well, so that they have a strong effect on others: 'When required, he could be an eloquent speaker, but preferred talking to small groups.'