After completing Graphical Content Analysis server for the ISE Expo, the idea of a common operational picture came up. That is, the user is presented with one view for everything where one can seamlessly zoom out to see the big picture or zoom in on a specific area or incident to see those details without ever switching views. And, it just so happened that the Antwerp Port Authority had recently suffered millions in damages due to a large barge colliding into one of the canal locks because someone wasn't paying attention.
websockets more than AJAX but AJAX is still used in every web app I create. While AJAX was originally intended for XML and SOAP payloads, I now use JSON as the payload of choice.
Flash plug-ins used a similar XMLSockets protocol which is why I didn't start using AJAX until Flash was winding down. More recently, since 2016, I've used WebRTC for client/server communication since it supports binary data communications in addition to low-latency video streaming over UDP.
Experiences using this skill are shown below:
Later on in the DNN anomaly detection project we had the opportunity to temporarily integrate our A.I. technology into a Barco control-room product called OpSpace that would be demoed at the 2018 ISE Expo. The OpSpace system contained a subsystem called the EDP Analytics Service (EAS) which used a graphical IoT builder call Node-RED.
During greater part of 2017 and 2018, our team was doing research in Deep Neural Net (DNN) anomaly detection. The problem we were looking to solve was that control centers usually had far too many surveillance video cameras and control panels to monitor and not enough personal to pay attention to them all. Why not apply machine-learning (ML) anomaly detection on camera and computer monitor feeds to alert control center personal of abnormal events as soon as they occur?
This was a student intern project that I took over to turn into a useful application for use within the company. Even though this wasn't a research project, we thought it would be a good way to make Barco Labs better known throughout the company, as many employees viewed us as an "ivory tower" doing esoteric research of little practical value. The Smart Meeting Room App (SMRA) had the very practical benefit of finding and scheduling meeting rooms on the Barco campus.
By 2019, our machine-learning research project was now integrating and managing multiple cameras and video sources and as a result it was becoming increasingly difficult to configure using config. files only. I was given the task of creating a professional-looking desktop UI that could be accessed from a web browser on company locked-down PCs. It was decided that there would be no support for mobile devices and the GUI would be package as a Docker image.
Created several proof-of-concept webapps in 2017 experimenting with ideas that will make virtual meetings more immersive. Our approach was largely inspired by the Star Wars™ films. If you remember, the Jedi Council held meetings in which remote participants were sitting in seats using holographic projections of themselves and vs. versa. I prototyped the same two-way immersive meeting idea using WebGL 3-D and WebRTC in web browsers.
Developed several browser-based video playback and video device management applications. Some examples (in reverse chronological order):
Engineered the high-performance tile-map server technology for the company that provided all the custom map overlays displayed by the universal map applications (above). Features included:
Designed and implemented complex, real-time, universal map display applications in Adobe Flash for the web and CocoaTouch for the Apple iPad that yielded a significant increase in revenue and helped achieve financial independence for the company (according to the President/CEO, Maurice Bailey).
Designed and created all of the Universal Flash Viewer plug-ins including all the graphics art work. They were all implemented in pure ActionScript 3 without the use of the main timeline. All ActionScript code was contained in separate source files. All plug-ins followed a standard design pattern:
The redesigned map plug-in solved a long-standing problem with the old map plug-in that was actually a port of some old code written by someone else. The new plug-in required a lot less memory, was a lot less buggy and it could show dozens of different base maps from multiple map tile servers. All of this could be configured without touching any code (unlike route-me and OpenLayers). The map type selected in this screenshot was the USGS topo map. The pushpin labels were draggable and individually displayable.
FlyteComm wanted to put the map tile servers under that same RSA SecurID gateway as the ASP .NET servers but the company's server infrastructure did not allow that plus there were known scalability issues. To demonstrate to IT there was a better way, I setup a VMWare virtualized system to prototype a better server infrastructure. The system consisted of:
Many of FlyteComm's customers had proprietary map overlays that they didn't want others to see. However, FlyteComm's array of virtualized map tile servers were shared among all customers. I updated my FastCGI tile server C++ code to authenticate every tile request using MD5 HMAC authentication using secret keys known only to the tile servers and ASP .NET app servers.
Developed a prototype version of the FlyteComm Universal Viewer for the iPhone/iPad as a marketing tool to guage customer interest. This prototype iOS app generated so much customer enthusiasm that the company went full speed ahead developing it into a real product. The iPad/iPhone application was written in Apple's Objective C for iOS 5 in XCode 4.3. There were many challenges. We could not use Apple's MapKit, based on Google Maps, because of Google's licensing restrictions on commercial use.