Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.
Sergei Vorobyov, PhD
Email: svorobyov@gmail.com
(Please email before calling)
Phone: 0739-86-05-29
(See also http://svu.no...
I have a PhD in Computer Science, MSc in Applied Mathematics, used to be Full Professor of
Information and Communication t...
3 Competences
1. Software design and architecture, Object-Oriented development, Design Patterns, UML,
software project man...
4 Enumeration of Skills/Known Tools, Frameworks
1. .NET, ASP.NET;
2. Administration: Linux server administration, Enterpri...
50. Kanban software development;
51. KVM/QEMU Linux virtual environments;
52. Lean software development;
53. Linux;
54. Li...
103. SSH secure shell;
104. Suse Linux
105. TeamCity;
106. Test-Driven software development;
107. Ubuntu Linux;
108. UML;
...
6 Recent Projects
I was recently implementing and managing the following projects. My roles were, simultane-
ously, Team M...
More specifically, my direct involvement can be characterized as:
1. development of the licensing and software branding gea...
2. Software is my 100% design and development, from scratch.
3. I contributed a lot to the hardware design requirements sp...
12. Communications with the server.
13. A sophisticated automated software update mechanism, allowing for partial upgrades...
1999 - 2006. Associate Professor, Uppsala University, Sweden.
1994 - 1999. Research Fellow, Max-Planck Institute for Infor...
MONSTER
WHAT IS MONSTER?
MONSTER is a product consisting of three components:
hardware unit, firmware, and control softwar...
INSTALLATION
Installation of MONSTER is done as follows:
MONSTER is connected to the computer running the
control software...
USING MONSTER
THREE EXAMPLES OF HOW MONSTER CAN BE USED:
MONSTER control software
(running on a PC) discovers
that the Int...
4
The case when MONSTER’s software is completely inte-
grated in a system gives further advantages. If MON-
STER’s softwar...
Redundant computer
In this model one has to install an auxiliary full-scale
computer right next to the monitored computer....
Below goes the description of which types of problems different tech-
niques resolve, as well as functionalities found in ...
CONCLUSIONS
• MONSTER uses basically the only technology that is
proven to work as a universal tool when something
goes wr...
SmartScreen
Smart digital advertising
directed at vehicle drivers
Each vehicle is identified. As an advertiser, you select...
Advertisement surfaces are strategically placed at
entrances to shopping centers’ parking garages/lots,
where you solely c...
An ad is displayed at the "right time”
for a selected vehicle model or vehi-
cle group. We call this specific.
You can als...
SmartScreen
Smart digital advertising
directed at vehicle drivers
4
HOW TO PURCHASE
You buy ad space by first selecting th...
SmartScreen
5
AD MATERIAL SPECIFICATIONS
IMAGE SIZE
• 9:16 Portrait
SIZE (W x H)
• 1080 x 1920 pixels
The ad should be mov...
Próxima SlideShare
Cargando en…5
×

cv-2016-23

My extended CV with a list of skill and descriptions of my recent commercial software projects

Audiolibros relacionados

Gratis con una prueba de 30 días de Scribd

Ver todo
  • Inicia sesión para ver los comentarios

  • Sé el primero en recomendar esto

cv-2016-23

  1. 1. Sergei Vorobyov, PhD Email: svorobyov@gmail.com (Please email before calling) Phone: 0739-86-05-29 (See also http://svu.no-ip.org/cv.html) Contents 1 Summary 1 2 Skills and Qualifications: 2 3 Competences 3 4 Enumeration of Skills/Known Tools, Frameworks 4 5 Online Companion 6 6 Recent Projects 7 6.1 Amazon Web Services (AWS) Cloud Infrastructure . . . . . . . . . . . . . . . . . . . . . . 7 6.2 Big MySQL Data Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 6.3 PlayReady Digital Rights Management (DRM) Subsystem . . . . . . . . . . . . . . . . . . 7 6.4 Banking Client-Server File Exchange System . . . . . . . . . . . . . . . . . . . . . . . . . 7 6.5 Enterprise Administration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 6.6 Embedded OpenWRT All-Around Firewall, SIP, WebRTC. . . . . . . . . . . . . . . . . . 7 6.7 Monster: Intelligent Power Management Switch for 100% Uptime of Computer Systems . 8 6.8 SmartScreen: Remote Advertising Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 7 Academic Backgrounds 10 8 Work Experience 10 9 Education 11 1 Summary I am an accomplished full-stack Software Engineer, Solution Architect, Designer, and dedicated programmer specializing in Object-Oriented Design and Analysis with rich and extensive ex- perience in the full lifetime cycle of software design and development process, starting from requirement specifications, prototyping, proof of concept, design, implementation, testing, and maintenance. My expertise includes development of substantial software and hardware systems, from ground up, both alone and in the group. I master and handle all stages of any project, of arbitrary complexity. 1
  2. 2. I have a PhD in Computer Science, MSc in Applied Mathematics, used to be Full Professor of Information and Communication technology. I have a few dozens of published scientific papers in Computer Science, several former successful Master, Licenciate, and PhD students, taught numerous courses in Functional, Logic, Object-Oriented Programming, Algorithms, Algorithmic Problem Solving, Databases, Operating Systems. I am a seasoned problem solver, sophisticated programmer, and a quick learner capable of acquiring any missing knowledge and skills in the briefest possible delays. I have rich past experience in C, C#, Java, C++, Go, SQL, Python, JavaScript, PHP, Ajax development, Functional programming in Standard ML, Haskell, Erlang, Refal. I am very creative, engaged, committed to excellence, ready to accept challenges, and overcome difficulties. I am especially proficient in C, C#, C++, Java, Go, parallel and Object-Oriented Program- ming and Design, Databases (SQLite, MySQL, PostgreSQL, MongoDB, Redis), Functional programming (Standard ML, Haskell, Erlang, Refal), scripting languages (JavaScript, Python, PHP, Bash). More recently my interests shifted considerably in the area of cloud computing and database technologies. Actually, I’ve been working, with a few interruptions, on database theory and implementation since late 1980’s. I am self-motivated, autonomous, proactive, strived to innovation taking full responsibilities, permanently learning new technologies, capable of obtaining and providing any additional new skills and requirements needed by any project of arbitrary complexity, always looking for the best tools to achive the goals. I am challenge-driven, never afraid of and compelled by new endeavors. I like to work in a team, previously lead successful software and database projects. 2 Skills and Qualifications: 1. PhD in Computer Science (Computer-Aided Software Verification). 2. Master Degree in Applied Mathematics and Statistics. 3. Former Professor, earlier Docent in Computer Science/Information Technology. 4. 25+ years of experience in Computer Science and Information Technology. 5. Hands-on experience in software development, from medium-size to large systems, start- ing from architecture, specifications elaboration, design, project management, down to implementation, testing, and maintenance. 6. Advanced algorithmic-based knowledge aimed at application optimization, performance, and reliability. 7. Rich experience in parallel, concurrent, and multi-threaded programming. 8. Profound experience in embedded systems development and Real-Time Operating Sys- tems (RTOS). 9. Proven expertise in Object-Oriented Design and Analysis. 10. Mastering major Object-Oriented and system development languages. 11. Solid experience in relational and non-relational (NoSQL) databases. 12. Proven experience in planning, creating, and managing the server, network, security in- frastructures, on a university department and enterprise level. 13. Profound knowledge and experience in Functional Programming. 14. Rich experience in Virtualized environments and Cloud Computing. 2
  3. 3. 3 Competences 1. Software design and architecture, Object-Oriented development, Design Patterns, UML, software project management. 2. Application programming both in Linux and Microsoft Windows environments (also An- droid and Odroid). 3. Linux system administration, enterprise servers management, firewalls, security, network maintenance (hardware and software). 4. Virtualization, mainly on Linux KVM, on enterprise level and for development purposes. 5. Cloud technologies, AWS, Google Compute Engine, OpenStack, Docker. 6. C programming (Windows, Linux, Microchip PIC18, PIC32 microcontrollers), using GLib, a general-purpose utility library, developed mainly by GNOME. 7. Parallel and multithreaded programming in C (with GLib), C#, C++ (Boost). 8. Socket programming in C. 9. Programming in Go. 10. Web client/server applications in C and C#. 11. C# programming (both MS Visual Studio and Mono for Linux). 12. Java SE and EE programming. 13. C++ programming. 14. Object-Oriented design and analysis. 15. Design Patterns. 16. SQLite application programming. 17. MySQL, PostgreSQL management and application programming, administration. 18. Programming for Real Time Operating Systems (RTOS): Spindle RTOS, FreeRTOS. 19. Embedded C programming. 20. Special-purpose versatile Media Player programming, using the GStreamer multimedia framework. 21. Firewall, network administration, DNS, DHCP, Samba servers, security. 22. Git, distributed software revision control system. Tortoise SVN. 23. NoSQL databases: MongoDB, CouchDB, Redis. 24. Bash programming. 25. Scripting languages: Python, PHP, JavaScript, Perl... 26. Functional programming languages: SML, Haskell, Refal, Erlang. 27. Scrum and Kanban Agile Software development, which I value and use to the extent I can. 28. (Many other IT skills, difficult to enumerate here...) 3
  4. 4. 4 Enumeration of Skills/Known Tools, Frameworks 1. .NET, ASP.NET; 2. Administration: Linux server administration, Enterprise servers administration, Enter- prise network and security administration, Windows and Mac OS X administration, Database administration (MySQL, PostgreSQL, MongoDB, Riak, ...); 3. Agile software development; 4. Ajax; 5. Algorithms and Data Structures; 6. Amazon Web Services, AWS; 7. AngularJS; 8. Bash shell, scripting; 9. Big Data; 10. Boost C++ libraries; 11. C, Embedded C; 12. C#, Visual Studio and Mono; 13. C++, Embedded C++; 14. Cassandra; 15. CentOS Linux; 16. Chef; 17. Clojure; 18. Cloud Computing; 19. Concurrency; 20. Continuous Integration; 21. CouchDB (NoSQL); 22. Cryptography; 23. CUDA; 24. CVS; 25. Data Mining; 26. Databases; 27. DevOps; 28. Distributed computing; 29. Django Web Framework; 30. Docker; 31. Embedded software development; 32. Erlang; 33. F#; 34. Firewalls; 35. FreeRTOS; 36. Functional Programming; 37. Git, GitHub; 38. Go/Golang; 39. Google Compute Engine; 40. GPU computing; 41. Hadoop; 42. Haskell; 43. HBase; 44. HTML5; 45. IPv6; 46. Java; 47. JavaScript; 48. Jenkins; 49. JSON, JWT, JSON Web Tokens; 4
  5. 5. 50. Kanban software development; 51. KVM/QEMU Linux virtual environments; 52. Lean software development; 53. Linux; 54. Lisp; 55. Lua; 56. MapReduce; 57. memcached; 58. Microchip PIC microprocessors, programming for; 59. Microservices; 60. MongoDB; 61. Multithreading, Concurrency; 62. MySQL; 63. Neo4J, NoSQL graph database; 64. Network programming; 65. Networking, protocols,...; 66. NewSQL; 67. Node.js; 68. NoSQL; 69. NuGet; 70. Oauth2.0; 71. OOP, Object-Oriented Programming; 72. OpenCV, OpenGL, OpenMP; 73. OpenStack; 74. OpenVPN; 75. Operating Systems; 76. OpsWorks AWS; 77. Parallel, multithreaded programming; 78. Perl; 79. PHP; 80. Pig (Hadoop); 81. PostreSQL; 82. PowerShell; 83. Prolog; 84. Puppet; 85. Python; 86. RabbitMQ; 87. RADIUS AAA; 88. Real-time programming; 89. Redis NoSQL database; 90. RESTful Web Services; 91. RedHat Linux 92. Riak NoSQL database; 93. RTOS, Real-Time Operating Systems; 94. Ruby; 95. Samba; 96. Security; 97. Simulation; 98. SOAP architecture; 99. Software Engineering; 100. Solr; 101. SQL; 102. SQLite; 5
  6. 6. 103. SSH secure shell; 104. Suse Linux 105. TeamCity; 106. Test-Driven software development; 107. Ubuntu Linux; 108. UML; 109. Unit Testing; 110. Valgrind; 111. Virtual environments: KVM/QEMU, VirtualVox, Xen, VMWare; 112. Visual Studio; 113. Web Programming; 114. Web Services; 115. WebSockets; 116. Windows Server 2012; 117. Windows 10; 118. WireShark, Fiddler; 119. XAML; 120. Xen; 121. XHTML; 122. XML; 123. XPath; 124. XQuery; 125. xUnit; 5 Online Companion All my: • recent software and embedded projects I implemented, • work/employment record, • academic backgrounds, and • education can be found at: http://svu.no-ip.org/cv.html in the extended forms of this CV. From the Linux shell my CV’s can be retrieved by: wget http://svu.no-ip.org/cv-2016-06.pdf wget http://svu.no-ip.org/cv-2016-11.pdf wget http://svu.no-ip.org/cv-2016-23.pdf (where the trailing number in the file name signifies the number of pages.) 6
  7. 7. 6 Recent Projects I was recently implementing and managing the following projects. My roles were, simultane- ously, Team Master, Development Team, and, partially, the Product Owner (in Scrum termi- nology). 6.1 Amazon Web Services (AWS) Cloud Infrastructure I was in charge of designing, implementing, and maintaining a substantial Amazon Cloud-based Development system, including scalable application servers, load balancers, Security Certifi- cates, Database services, Virtual private networks, security groups, custom Chef custom cook- books and recipes (Ruby), connected to the on-premises TeamCity and Octopus development servers. I was a chief technical designer of this project. 6.2 Big MySQL Data Project I implement a substantial big MySQL database (hundreds of millions of records) project for an international media/broadcast enterprise. The project included data mining, constructing and optimizing numerous optimized table joins, custom indexes, and complex queries (taking days to run). 6.3 PlayReady Digital Rights Management (DRM) Subsystem I implemented a custom Microsoft Playready DRM-compatible subsytem/proxy for communi- cating with the Microsoft DRM-certified license managing server. The system uses RESTful, SOAP, and custom APIs, and is implemented in C# and .NET Web Services Framework. 6.4 Banking Client-Server File Exchange System I designed and implemeted a secure custom client/server file exchange system for a major Swedish bank, based on secure communication tools, PowerShell scripts, and custom system scheduled jobs. 6.5 Enterprise Administration I also implemented numerous on-premises system administration projects from setting up devel- opment, file, and backup servers, virtual environments, private clouds, networking, setting up different Linux and Windows application servers (Samba, MySQL, PostgreSQL, DNS, DHCP, LAMP, Xen, ...). 6.6 Embedded OpenWRT All-Around Firewall, SIP, WebRTC. Most recently a have been involved in a large commercial project implementing advanced Fire- wall, E-SBC (Enterprise Session Border Controller), WebRTC (Web Real-Time Communication protocol, drafted by World Wide Web Consortium W3C and Google) supporting browser-to- browser applications for voice calling, video chat, and P2P file sharing without the need of either internal or external plugins, using the OpenWRT embedded Linux-based OS. OpenWRT is primarily used on embedded devices to route network traffic. The main components are the Linux kernel, util-linux, uClibc and BusyBox. All components have been optimized for size, to be small enough for fitting into the limited storage and memory available in home routers. 7
  8. 8. More specifically, my direct involvement can be characterized as: 1. development of the licensing and software branding gear for IP (intellectual property) protection of the Firewall/E-SBC, allowing for generation customer-matching .iso images, for installation on customer’s hardware; this involves cryptograhic checksums, encryption, digital signing, verification, license upgrades, and other proprietary functionality; 2. user-friendly installation wizard for LAN/WAN Firewall/E-SBC configuration during in- stallation, greatly simplifying the tedious trial-and-error installation/configuration pro- cess for an average customer; 3. implementing standard RADIUS Authentication and Accounting functionality for the system, allowing to hook it to a standard RADIUS (Remote Authentication Dial-In User Service) server; 4. implementing a secure, unforgeable, encrypted system configuration backup (including sensitive information, like password and other credentials), both Web GUI based and CLI (command-line interface) script-based; the requirement to keep such backups on non- trusted third party servers without compromise was especially carefully implemented; 5. development of the (Python-based) unit testing gear for testing functionalities of the Firewall/E-SBC; 6. implementing a versatile SQLite-based (but more MongoDB-like document-like or Redis- like key-value style, as per capabilities and features) database engine for keeping user cre- dentials and system configuration parameters; this can be run locally on the Firewall/E- SBC, or as a remote server; advanced security features have been designed and incorpo- rated; 7. implementing a custom secure WebSockets (wss://) based protocol for secure remote configuration of the systems; (I cannot provide more specific details at that moment); 8. cloud provision for the company’s produced firewalls/E-SBCs: OpenStack, Google Com- pute Engine, Amazon AWS, EC2, S3. 9. design, development, support and maintenance of the company’s virtualized development servers, for private and hybrid clouds. 6.7 Monster: Intelligent Power Management Switch for 100% Uptime of Computer Systems Monster is intended for a 100% uptime management of computer systems without human in- teraction (see the attached .pdf file with a product description), intelligently supervising and restarting hardware and software components based on their monitoring status and response. I have 100% architectured and implemented the firmware and software parts of the following Monster intelligent power management system in embedded C for Microchip MCUs and Spindle RTOS (Real-Time Operating System): 1. Monster is a combination of: (a) a hardware device (see the attachment) comprising the Microchip PIC18F4620 MCU (microcontroller unit), the FTDI 245RL USB chip, relays board, switches, buttons, LEDs, power sockets (b) and an RTOS (RealTime Operating System) based software written in C. 8
  9. 9. 2. Software is my 100% design and development, from scratch. 3. I contributed a lot to the hardware design requirements specification and elaboration, testing and quality control. 4. I technically supervised the whole project keeping contacts and providing requests with the hardware developers and manufacturers. 5. Monster software is a complicated Finite State Machine implemented in C using the Spindle RTOS (Real-Time Operating System). 6. (Selection of Spindle is motivated by the fact that this is probably the only full-fledged RTOS capable of running on a MCU with just 64K of program and 4K of data RAM). 7. The more advanced hardware and software version of the Monster based on a more powerful and versatile Microchip PIC32 MCU and FreeRTOS, although almost completely designed and specified by me, was unfortunately terminated in the development stage because of the economical reasons. 8. Monster toolbox comprising several interface management utilities to manage and con- figure the Monster devices is all my own design and development. 9. Configurable Monster managers with software watchdogs for Windows and Linux, in- tended to be run in synchrony with the application software (controlled by Monster) is also my full design and implementation. 6.8 SmartScreen: Remote Advertising Client Remote Advertising Client is a substantial part of the SmartScreen product (see the attachment product leaflet), together with the Server and the Sensor. I have 100% architectured and implemented the following “Smartscreen” Advertising sys- tem (except for the sensor system, which is nevertheless based on my utilities stack; I also participated in hardware planning for the whole system): 1. A client is a two-computer system, with a few other components on the LAN, communi- cating with the central application server via a 3G modem. 2. It is a complicated system of a dozen applications (on top of a few dozens hardware components, Monster included) running in synchrony, providing for 100% uptime, full fault-tolerance, and information security. 3. Database management (using SQLite3): all content in every client (customized) is kept a series of SQLite tables kept synchronized with the remote central application server running MySQL. 4. Application logging management. 5. Multimedia management. 6. Advertisement display and Media Player, using graphics acceleration. 7. Advertising scheduling management. 8. Advertising logging. 9. Car arrival logging. 10. Targeted advertising management: the ad shown depends on the incoming car type, rapid database search and real-time response with an adequate ad. 11. Alarms system intended for the prompt dispatch of information about critical events. 9
  10. 10. 12. Communications with the server. 13. A sophisticated automated software update mechanism, allowing for partial upgrades without stopping the functionality of the whole system, scheduled upgrades, safe fallbacks. 14. Besides I implemented a reliable survival and monitoring harness system aimed at 100% client’s uptime, without human interaction, even when there is no 3G connection to the central server. 15. I also implemented a custom lightweight versatile logging, alarms, and utilities system used in all software components of the Remote Advertising Client. 16. The system was first implemented for the Windows 8 Embedded platform in C# (.Net4.5), and subsequently for the GNU/Linux platform (Ubuntu) in C# (Mono) and C (with GLib), 7 Academic Backgrounds My main research and development interests are efficient algorithms and data structures, par- allel computing, high-performance compute clusters (build such clusters myself), cloud com- puting, distributed and other databases, computer security, Linux and open-source software, game theory, mathematical and combinatorial optimization, operations research, computational complexity, Linux virtualization, system programming and administration, heuristic algorithms, embedded programming and real-time operating systems. I have a solid experience in all kinds of programming and managing big industrial and research projects, including C, C++, Java, MySQL, PostgreSQL, Standard ML. I have a rich experience in educating PhD and Master students, teaching various courses in algorithm, programming, software engineering, and would be interested in taking part in a challenging R&D IT project applying any or all my experi- ences listed above and beyond. I am a quick learner and will be able to acquire all necessary knowledge and skills I am ignorant of or missing in the briefest possible delays. My hobby is computing and I am spending all my spare time on all kinds computer-related projects. I have a few dozens of computers of all kinds (regular or parallel) I am entertaining over the weekends. 8 Work Experience December 2015 – present. European IP Cloud AB, Technical Consultant. March 2016 – May 2016. Valtech AB, Technical Consultant. March 2015 – December 2015. Ingate Systems AB, Senior Systems and Database devel- oper. 2011 – 2015. Facility Labs AB, Senior Software Engineer and Architect. 2008 - 2011. Full Professor of Information and Communication Technology, Natural Sciences Department, University of the Faroe Islands. 2006 - 2008. Visiting Full Professor, Vienna University of Technology (TU Wien), Austria. 2002 - 2006. Visiting Full Professor, Rutgers University (USA), DIMACS (Center of Discrete Mathematics and Theoretical Computer Science), RUTCOR (Rutgers Center of Oper- ations Research); Princeton University USA, Tel-Aviv University, Israel; Isaac Newton Institute of Mathematical Studies, Cambridge, UK. 10
  11. 11. 1999 - 2006. Associate Professor, Uppsala University, Sweden. 1994 - 1999. Research Fellow, Max-Planck Institute for Informatics, Saarbr¨ucken, Germany. 1991 - 1994. Visiting Professor, INRIA (Institut National de Recheche en Informatique et Automatique), Lorraine and l’Universit´e de Nancy I. 1986 - 1991. Senior Research Associate, Program Systems Institute of the USSR Academy of Sciences, Pereslavl-Zalessky, USSR. 9 Education 1983 – 1987. Graduate School, Computing Center of the USSR Academy of Sciences, Siberian Division, Novosibirsk, Akademgorodok. (Now: Andrei P. Ershov Institute of Informatics, Siberian Division of the Russian Academy of Sciences.) 1986 – 1987. PhD Thesis in Computer Science entitled “Conditional Term Rewriting Systems for Computer-Aided Program Verification”, finished and submitted in November 1986, defended (by unanimous committee vote, cum laude, with distinction) in November 1987. 1978 - 1983. Mechanics & Mathematics Faculty of the Rostov-on-Don State University, USSR, MSc. (Master Degree with Excellence) in Applied and Pure Mathematics. Graduated ranked #1; during the last 2 years earned the Lenin Scholarship for excellence. 1977 – 1978. Graduated High school with the Gold Medal, Prise-winner at regional and Moscow High-School Mathematics Olympiads. Appendix: Recent Software and Embedded Projects The descriptions of recent software and embedded projects I implemented, can be found either in the attachment to this document, or online at: http://svu.no-ip.org/cv.html 11
  12. 12. MONSTER WHAT IS MONSTER? MONSTER is a product consisting of three components: hardware unit, firmware, and control software. MONSTER’s control software is an application run- ning on a PC under its OS supervision. This application ensures that MONSTER executes, through its hardware and firmware, the actions defined for the system it monitors. The MONSTER device has one input and four output AC-sockets, as well as one USB communication port. The PC control software communicating with the inter- nal MONSTER firmware (through the USB port) deter- mine how MONSTER dispatches the input AC-power to four output sockets. This allows for complicated power off/on cycle scenarios, dependent on (mal)functioning of different hardware and software components, including the control computer itself. WHAT DOES MONSTER PROVIDE? MONSTER is supposed to be installed in environments where a reliable functioning of a computer-based sys- tem should be guaranteed without the human inter- action. MONSTER can be compared to a human tech- nician who supervises the system’s operation and solves different mainly software-related problems that may occur. MONSTER cannot however perform hardware reparations and replacements, which obvi- ously have to be done by a human technician. WHICH PROBLEMS DOES MONSTER SOLVE? Different kinds of failures can occur while running a computer-based system. MONSTER can be used to remedy the following types of failures: • hardware devices connected to the computer stopped functioning, for example, cameras, digital monitors, modems, sensors; • the operating system stops functioning (hangs); • required programs stopped functioning, for example, Media Player or Alarms Sender; • force the system to shut down itself, for example, in cases when continued operation can lead to damages. Examples of devices MONSTER can control operating voltage to: • IR-lamps, modems, monitors, cameras, barrier gates, motor starters, air-conditioners, PLC, DUCAR, ventils, ventilators, sensors, alarms, audio systems, projectors, etc. DESIGNED AND MANUFACTURED IN SWEDEN 1 Devices – Have you tried turning it off and on again? MONSTER reboots for you if needed!
  13. 13. INSTALLATION Installation of MONSTER is done as follows: MONSTER is connected to the computer running the control software (to be used as a supervisor) by means of a Type AB USB 2.0 cable. Power to this computer is provided through one of the MONSTER’s output sockets. MONSTER’s control software is installed on this com- puter. Power to external devices, like modem, is also provided through one of the MONSTER’s output sockets. MONSTER has the total of four output sockets, which may provide power to, say, computer, modem, sensor, monitor. Since the power supply goes through MONSTER, it can choose to break power to the computer or other devices (and then switch it on back again) as a last resort to restore their normal operation. TECHNICAL DESCRIPTION TECHNICAL FACTS DIN rail mounting 4-channel watchdog, each port can be controlled separately, with different levels of definitions Indicators: one orange on the main on/off switch, four green power indicators, one per output socket, four blue leds controlled by the firmware indicating different states of internal logic, three leds, green, blue, and red on switch mode buttons, ALL ON mode, MONSTER mode, ALL OFF mode, respectively. Normally open high performance relays, breaking both the neutral and the phase, 16A each Input voltage: 110–250VAC Output voltage: same as input Interface: USB 2.0 type B Operating temperature: 5–50C (non-condensing) Maximal AC current: 16A Maximal AC current per port: 16A Consumed power: 5W Control: both from PC software and by using buttons on the front panel Fuse: nominal current 16A; characteristic: slow; breaking capacity 500A 2 Devices – Have you tried turning it off and on again? RATIONALE BEHIND MONSTER MONSTER operates on the basic assumption that everything it is set to monitor is correctly functioning in normal conditions. Meanwhile, it is ready to restore normal functionality of any monitored devices, which start malfunctioning, by a forced restart. This is done by first powering off and then powering back on the malfunctioning device. MONSTER control software con- tinuously communicates with MONSTER providing data/ feedback from the monitored devices. While everything operates correctly and nothing bad happens, no action is performed by the MONSTER. If, however, something bad happens, say, the computer hangs, MONSTER’s control software running on this computer stops communi- cating with MONSTER’s firmware. As a consequence, MONSTER performs a power off/power on cycle for the computer, which effectively reboots the OS and restarts the control software.
  14. 14. USING MONSTER THREE EXAMPLES OF HOW MONSTER CAN BE USED: MONSTER control software (running on a PC) discovers that the Internet connection fails. If connection does not get back again in two hours, MONSTER powers off the modem, waits one minute, and powers the modem back again. The modem restarts. If the control software can now connect to the Internet, the normal operation restored and nothing is going to happen. However, if the control software cannot connect, the above power cycle may be repeated a predefined number of times; alternatively, the whole system including the com- puter can be restarted. If this does not help, probably a human interac- tion is needed, similar to SIM-card or modem exchange. 1 MONSTER control software stops communicating with MONSTER as a result of Windows’ BSoD (blue screen of death). After 30 seconds MONSTER breaks pow- er to the attached digital signage monitor so as it does not show undesired information. After the monitor is powered off, MONSTER breaks the power to the computer, waits one minute, and powers the computer back on. After a prede- fined time period, e.g., two minutes, when the media player restarts, MONSTER powers on the digital signage monitor. 2 When a traffic control cam- era stops sending a prede- fined command to the log file, the MONSTER control software stops saying to MONSTER that the cam- era is OK, and as a result MONSTER powers it off. After one minute MONSTER powers the camera back again, and it restarts. If the predefined command starts to be written to the log, everything’s fine; if not can software reboot both the computer and the camera. If this does not help, the human intervention to check the camera and its software is necessary. 3 DIFFERENCES WITH THE EXISTING SYSTEMS MONSTER can be called a WatchDog. A WatchDog is a common name for various products monitoring com- puter-based systems. There is a big number of different types of WatchDogs on the market. They operate differently, as discussed below. STONE STACK One can see a computer and its all subsystems as a stack of stones. Every stone in the stack depends on all its underlying stones. Higher on the stack a stone is, more stones it depends upon. If a stone high up in the stack breaks, all underlying stones are unaffected. If, however, a stone in the bottom cracks, all higher stones are going to fall down. In correspondence with this prin- ciple, MONSTER’s hardware and software are placed on he stack as far apart as possible. The physical unit lies in the bottom. MONSTER’s software is placed on the top. If any of its underlying stones ”falls apart”, as a conse- quence MONSTER’s software also falls from the top. As a consequence MONSTER’s software stops talking to MONSTER’s hardware and the latter breaks and ruins the whole stack in order to allow it, after a while, rebuild itself completely from the bottom up again. 3 Devices – Have you tried turning it off and on again?
  15. 15. 4 The case when MONSTER’s software is completely inte- grated in a system gives further advantages. If MON- STER’s software finds out that a stone somewhere in the stack starts to fail and shake, the MONSTER’s soft- ware can try to fix this stone (component). If this does not help, MONSTER’s software tries to fix the problem lower and lower in the stack. If none of this helps to resolve the problem, MONSTER’s hardware erases the whole stack to allow the whole system (stack) to rebuild itself after a reboot. DIFFERENT TYPES OF WATCHDOG SOLUTIONS Below we give descriptions of different WatchDogs and how their basic functionality differs from the MONSTER’s. PING-based This a type of device that continuously sends a signal to the computer it is intended to monitor. The device expects a response from the computer so as the normal operation can continue (PING <-> PONG). This model assumes that the computer can respond to the PING-call despite, e.g., a device as a modem hangs or a program stops functioning. If a program, e.g., a media player, hangs, it does not influence the PING-functionality of the computer, independent of the state of any programs it runs. With the stone stack model described above, one can say that the PING-call control stone lies in the bottom of the stack being unable to discern anything above it (misbe- havior of other other programs and applications). Note that MONSTER functions in the opposite way and reverses the PING-logic. In the MONSTER case, the computer sends PINGs to MONSTER. Plug-in cards This model consists in placing a PCB (printed circuit board) card into a spare slot/contact of a computer and from this a wire is thrown to the computer’s reset button. In this model the computer is monitored on the very low level (cf., the stone stack model above). This implies that a failure on a high level, say, operating system (higher in the stack) can be ignored/overlooked. Since restart is achieved by a reset button, it does not at all resolve the problem with external devices (with their own power supply). Besides, there’s sometimes no spare place in the computer to accommodate a plug-in card. GSM-relays This is in fact not a WatchDog per se, because there should be a person to call a phone or send an SMS to the device in order to switch the power off and on. This method is comparable to the usual powerstrip with the the phone-call operated on/off switch. This solution does not incorporate even a slightest idea of whether the system is functioning or not. MONSTER will minimize the human interaction and will try to make system take care of itself. Active WatchDog This very common technique is almost identical to MONSTER, except for one vital point. There is one pro- gram (similar to MONSTER’s software) that has the task to signal the power switch if {EMPHASIS: some error happened}. In reference to the stack of stones model above, this requires that if a stone anywhere in the stack fails, the program in question should report fail- ure. But this program itself may fail as a result of that stone failure. Consequently, the devices corresponding to the bottom-most level of stones, including the power switch itself, will never know that an error has occurred, and whole error recovery fails. MONSTER reverses the above logic in such a way that if the MONSTER’s software fails, there is herewith MONSTER cracks all the stones below it on the stack. Additionally, MONSTER has the functionality to auto- matically switch the power after a certain time, which many WatchDogs fail to possess. Software-based This is a computer program that analyzes the machine’s state and forces the computer to restart if some error happens. Such a restart requires that the program asks the operating system (e.g., Windows) to restart the computer. Consequently, if the operating system itself malfunctions (e.g., hangs) this method is unable to restart the computer. Besides, the system can freeze in restart. Monitoring program can also stop functioning without anyone noticing it. This makes the system una- ble to restart and incapable to deal with further failures. Devices – Have you tried turning it off and on again?
  16. 16. Redundant computer In this model one has to install an auxiliary full-scale computer right next to the monitored computer. This extra computer monitors and is capable to control the power supply to the supervised computer. This solution is often considered expensive and convoluted. Monitoring computer needs also to be monitored. This method requires large space, which is often unavailable (in, e.g., digital signage systems). Quite an extensive software package may need to be developed so as this method could function. MONSTER is constructed with the aims of not needing any monitoring, being sufficiently small to fit into nar- row environments, as well as being economical. Programmable power switches This solution could be set up in such a way that it gets the same functionality as MONSTER. This is because a programmable power switch is in fact a small complete computer. This model implies however considerably higher costs, as well as the unit has to be programmed completely from scratch to get the desired behavior. On top of that a computer program must be written as well. MONSTER has big similarities with programmable pow- er switches, but it differs from them in that MONSTER is preprogrammed, adapted, and consequently is more cost-efficient. USE AREAS FOR WHICH MONSTER IS NOT NORMALLY INTENDED FOR Solutions which need more time-based on- and off cycles for external devices with a given interval. An ex- ample of such a device is an advanced timer used with the car engine pre-heater. Similar are devices found in ventilation systems which open and close depending on temperature, time, and other factors. MONSTER ensures operation in various computer-controlled systems without any human interaction. 5 Devices – Have you tried turning it off and on again?
  17. 17. Below goes the description of which types of problems different tech- niques resolve, as well as functionalities found in different devices. Table clarification: A. The operating system hangs or becomes unusable. B. Application locks or behaves abnormally. C. Computer locks or stays in an unknown state. D. USB device stops responding or behaves abnormally. E. External device stops functioning or behaves abnormally. F. A component becomes irreparably damaged. G. Timer control for on/off cycles (e.g., cut power between 02:00 – 06:00). H. Automatic turn off when a certain criterion is fulfilled; e.g., a reactor’s temperature is too high. I. Possible to control device remotely over the phone network. COMPARISON TABLE OF DIFFERENT TECHNIQUES Devices – Have you tried turning it off and on again? 1. MONSTER comes with software that detects failures, but should TOTAL control be achieved, must MON- STER’s well-documented software be integrated in the customer’s project. It should be noted that if an error happens that stops or prevents MONSTER’s normal software operation, MONSTER will break and restore the power as desired. 2. In certain cases can plug-in card based systems de- tect failures in software. But not all failures in USB de- vices can be solved by computer reset. This is because powering of those devices remains on during restart, which does not completely shut down the USB devices. 3. Software detecting this type of failure can be written but it is highly improbable that it will be able to remedy them. Definitely cannot solve problems requiring that a human switches power off and on. Software failure Hardware failure Control Cost Operating system Application B Computer USBD ExternalE BrokenF AutoH ExternalI MONSTER 1 1 1 6 Low Ping-based Low Plug-in card 2 2 2 Low GSM-relay Medium Aktive Watchdog 7 7 6 Low-Medium Software-based 3 3 3 3 8 8 Low-High Redundant computer 4 6 High Programmable power switch 5 5 5 5 5 6 High A C Time controlledG 4. A redundant computer can in theory take over control replacing a failed component. 5. Exactly like for software-based WatchDog one can write software which detects this failure. This should be done from scratch for each project. 6. Could be extended with the GSM-module for external control and reporting. 7. Certain failures can be non-detectable by Active WatchDogs, and the system will never recover itself. 8. Software can simply restart the computer or shut it down. It cannot switch the power on automatically after a certain time, since the software functions only when the computer is running. 6 = problem resolved or the needed functionality is provided = problem is not resolved, or this functionality is absent Digits 1–8 denoting different con- straints/reservations are described below the table.
  18. 18. CONCLUSIONS • MONSTER uses basically the only technology that is proven to work as a universal tool when something goes wrong: switch off the power and restart. • MONSTER reverses the common technique, so as instead of saying to MONSTER ”now is time to break the power!” one says ”please do not break the power yet!”. • MONSTER automatically handles the failures that can occur in computer-based systems, so as opera ting companies will not need sending human technici- ans to resolve problems. • MONSTER is easy to use. monster@facilitylabs.com www.facilitylabs.com Phone: +46 (0)8 792 19 00 PRINCIPLE FOR AN ACTIVE WATCHDOG: – Call me if you have a problem! PRINCIPLE ON WHICH MONSTER IS BUILT UPON: – Stop calling me if you have a problem! Devices – Have you tried turning it off and on again?
  19. 19. SmartScreen Smart digital advertising directed at vehicle drivers Each vehicle is identified. As an advertiser, you select the vehicle models or types of model groups (e.g., SUVs) that your ad will target. Digital screens are strategically positioned at entranc- es to commercial facilities, where you communicate solely with your customers who are close to the place of purchase. Vehicle owners are generally quite affluent. Via Facility Lab's unique technology, you can, for example, selec- tively reach groups with the most purchasing power. SmartScreen Facility Labs’ SmartScreen offers you an appropriate advertising site with high-exposure value near points of purchase – with minimal ad spillover. How? Via sophisticated, crea- tive technologies. 1
  20. 20. Advertisement surfaces are strategically placed at entrances to shopping centers’ parking garages/lots, where you solely communicate with arriving guests. Once in the center, you compete for their attention with perhaps 100 shops and their brands. POSITIONED NEAR PLACE OF PURCHASE SmartScreen Each time an ad is displayed, this information is saved into the category for which it was shown (except rolling/looped ads). This al- lows us to provide very precise feedback. YOUR ADS ARE COMPILED INTO ACCURATE REPORTS Smart digital advertising directed at vehicle drivers UNRIVALLED BENEFITS 2 Facility Labs uses only the best screens from renowned manufacturers. These very bright, high-quality screens display advertisements in direct sunlight. Facility Labs optimizes ad displays by starting an ad film at just the right moment when a selected vehicle drives past the digital screen; this concept is called timing the ad. We help you target your ad to the right audience by selecting vehicle models or model groups that might see your ad. To simplify this, we divided all vehicle models into three categories – based on drivers’ degree of consump- tion. We call these groups: normal, high, and luxury. TIMED AND TARGET-GROUP-DRIVEN ADVERTISING NORMAL HIGH LUXURY We have divided all vehicle models into three categories – based on drivers’ de- grees of consumption.
  21. 21. An ad is displayed at the "right time” for a selected vehicle model or vehi- cle group. We call this specific. You can also choose to advertise “timed “ for all vehicles – regard- less of model or group. We call this unspecific. AD IN LOOP: TIMED AND TARGET-GROUP-DRIVEN ADVERTISING An ad loop that appears when no timed or audi- ence-driven ad is displayed. The ad loop contains 10 separate ads that are displayed for 6 seconds each. 3 TWO WAYS TO ADVERTISE SmartScreen 1 1 2 Smart digital advertising directed at vehicle drivers Luxury ! High ! Normal ! All vehicle models ? 60 sec 6 sec 10 slots Target-group driven, based on vehicle owners’ consumption patterns (specific). Not target-group driven.
  22. 22. SmartScreen Smart digital advertising directed at vehicle drivers 4 HOW TO PURCHASE You buy ad space by first selecting the shopping centers where you want to been seen. Then you select the cam- paign period. After that, you select your target groups and the extent to which you want to reach them. Once you make your selections, we develop a compet- itive bid for you. We suggest that you contact us, and we’ll help you with everything. All in Stockholm Täby Centrum Nacka Forum Liljeholmstorget Galleria National (all) Where? RBS All in Göteborg Täby Centrum Nacka Forum Liljeholmstorget Tid: When? Veckodagas: (mon–sun) Period: –00:00 24:00 –2014-03-09 2014-03-16 How? Target group Luxury Target group High Target group Normal Timed Ad in loop CUSTOMER REVIEWS ”We quickly realized that the ability to target messages and product selection to various consumer groups closed the gap between cus- tomers’ thoughts and purchases.” Patrik Hök, Media Markt, Nacka Forum ”Via SmartScreen advertising, I’ve seen an increase in customers to my shop. That's why I signed a one-year contract with Facility Labs.” Tina Green, owner of the SAND store i Nacka Forum ”The first thing that seemed interesting and that got me to start advertising on SmartScreen was the ability to get the message out to customers directly connected to the mall visit, namely, nearer to the time of purchase – compared to newspaper ads.” Johan Hallengren, Apoteket, Täby Centrum Site: Nacka Forum Period: 1 March 2010 to 7 March 2010 Number of interviews: 510 Spontaneous recall: 60% Assisted recall: 81% Saw no advertising: 19% OBSERVATION MEASUREMENTRight now, our digital advertising screens are in Swe- den’s Täby Centrum, Nacka Forum, Liljeholmstorget, and Landvetter Airport. You can choose to display your ad at one or more of these facilities. The screens reach about 11 million persons annually. SCOPE ‒ REACH
  23. 23. SmartScreen 5 AD MATERIAL SPECIFICATIONS IMAGE SIZE • 9:16 Portrait SIZE (W x H) • 1080 x 1920 pixels The ad should be moving, and the message as brief and clear as possible. EXAMPLES OF ADVERTISING CAMPAIGNS DESIGN Smart digital advertising directed at vehicle drivers IMAGE FILE FORMATS • PNG • JPG VIDEO FORMAT • AVI • MPG • WMV • MP4 We support all common codecs. FILE SIZE • Maximun 10 MB FILM LENGTH • 5 seconds

×