I neglected my blog so much that I feel deeply ashamed returning to it after so long. I even forgot how WordPress administration console works and what customisations I’ve added year ago ;). However – like they say – it is never too late to do the right thing. Therefore, I’m going to push myself into creating two or more blog posts this month. Especially that I’ve received very positive feedback after my session delivered at the start of POUG Workshop 2020 – for which I’d like to thank you all. And such good feedback oblige me to elaborate in more details about my session.
First of all my presence at POUG comes from the fact that I work at Advatech and we – as a company – are one of the main sponsors of POUG conferences and we do this from the very beginning. That should tells you that I’m not regular speaker; I’m not “IT celebrity” as I used to call brilliant specialists combining technical expertise with presentation skills. I’m just engineer who only sometimes (very rarely) takes part in events like this as a speaker. But POUG is an exception and I already presented there 3 times (plus once on Meetup edition). BTW: POUG stands for Pint With Oracle User Group and is very active community of Oracle administrators, engineers, fans in Poland – started and maintained by Database Whisperers (known also as ORA600) with theirs energetic leader Kamil Stawiarski (Oracle ACE & OCM).
Secondly, POUG Workshop has been postponed due to COVID-9 situation and its formula has changed from typical conference to online event. That caused that my stress rose higher as – you know – it is much harder to keep audience attention using typical slides approach (also, you can’t use your hands in case when your English vocabulary is not sufficient to express your thoughts). It is also very pity (yet necessary) that we could not meet face to face – hence this conference is not only technical, but also very much about networking and is known from its relaxed atmosphere and a lot of beer flowing around.
But that was not enough. I don’t cover technical staff in this blog entry, especially I don’t want to repeat what I did during the session – but because that suppose to be workshop type of conference – I came up with the idea (internally in mind – which unfortunately is the most motivating kind) that I should connect my presentation with the lab environment used during my session. Also I asked myself a question: would it be possible to do everything I needed to show from within a browser – so only browser content could be shared over Zoom webinar session.
To achieve that I’ve investigated if I can connect to remote system – using terminal connection – just from a browser, i.e. without switching focus to dedicated SSH client application. I found some solutions (shellinabox, Bastillion, xTerm.js) – but they were not so easy to use. Usually they assumed that either you will use entire page as a terminal, required additional processes to be run on client or – as xTerm.js – did not have SSH part implemented. Finally I’ve decided to use xTerm.js anyway and to make it work I’ve created NodeJS server application which I started on every cluster node. This small application effectively spawned local bash/screen process and connected its input/output streams with xTerm.JS running in the browser. The communication channel is using WebSocket which is technology available in most modern browsers. This part was inspired on this https://github.com/mikechernev/xterm-revealjs-presentation-sekeleton project. However I’ve created regular RevealJS plugin to integrate this with presentation framework I used. I also implemented communication differently to allow inter-system communication – which effectively end up with creating my own CA (Certificate Authority) and use SSL for all communication.
eCharts and Interactivity
More on that interactivity in next blog entry 😉