Hello everyone,

for those who missed my session, please find the recording at https://bluejeans.com/s/zij35/ (there are two chapters, because I've accidentally clicked "stop recording" during the session)

slides are available at http://redhat.slides.com/vszocs/debugging-ovirt-gwt-applications?token=brh5Tzaz

As for the questions - let me post some answers here:

> ​(asked by Roy) Intellij supports super dev mode. Does anyone have experience with it?

Yes, IntelliJ has built-in GWT support, see https://blog.jetbrains.com/idea/2014/09/intellij-idea-14-brings-better-gwts-super-dev-mode-support/

But I wasn't able to make it work on my local dev. env. as it attempts to start SDM code server on its own, whereas in oVirt we have a dedicated command to start the code server, `make gwt-debug`. And that's partially because we use ${foo} placeholders in our *.gwt.xml files (to be substituted during Maven build) which causes IntelliJ to fail with messages like

  Invalid property value '${gwt.runtimeLogLevel}'

which comes from WebAdmin.gwt.xml file.

TL;DR it works for HelloWorld-style GWT webapps, but unless we can tell IntelliJ to reuse existing SDM code server, it won't work for us.

> (asked by Shmuel) What about utilizing WebAssembly to improve performance?

There are two things to consider, asm.js [1] and WebAssembly spec [2].

[1] http://asmjs.org/
[2] http://webassembly.org/

asm.js is about having a subset of JavaScript which is easily optimizable by the runtime platform (e.g. browser's JavaScript engine) but this platform obviously needs to be aware of the asm.js spec to do the optimizations. Latest working draft of asm.js is from Aug 2014.

WebAssembly seems to be the next step, defining a binary format that is size- and load-time-efficient but working with low level structures like some basic types, table of types, linear memory, functions and local/global variables - everything wrapped as a "module". The runtime platform also needs to support WebAssembly spec, which is currently being standardized, see http://webassembly.org/docs/mvp/

I found some GWT discussions about WebAssembly and it eventually comes down to GC (garbage collection) support, since WebAssembly code runs in its own context, possibly outside (next to) JavaScript VM. Plus, given the fact that lots of performance depends on how much DOM (or other browser-specific) operations a webapp performs, the gain of using WebAssembly in webapps might not be that big, compared to e.g. games or scientific applications that leverage the power of native code on given OS platform.

Good news is that WebAssembly has plans for GC - https://github.com/WebAssembly/design/blob/master/GC.md

So once/if WebAssembly adds GC support and tightens integration with web APIs, it might be a feasible compilation target for GWT.


On Sun, Apr 2, 2017 at 11:24 AM, Roy Golan <rgolan@redhat.com> wrote:

On Fri, Mar 31, 2017 at 4:49 PM Vojtech Szocs <vszocs@redhat.com> wrote:

I've made some new discoveries while working on this, the biggest one is that SDBG (link below) actually works for oVirt WebAdmin!

Intellij supports super dev mode. Does anyone have experience with it?
This means there's a viable alternative to existing GWT debug method, which doesn't restrict you to using an ancient (NPAPI-compliant) browser, while still being able to use Java IDE (Eclipse) as well as reaping the benefits of SDM code server (fast incremental recompiles).

If you're an oVirt UI maintainer, I highly suggest you to join this session, spend ~1 hour of your time and in return, get the knowledge to be more productive when dealing with our GWT code.


On Tue, Mar 28, 2017 at 3:56 PM, Vojtech Szocs <vszocs@redhat.com> wrote:
Update: moving the session to Tue, Apr 4 @ the same time as originally planned.


PS: Greg sent me a link to SDBG project [1] which allows you to debug GWT application via Super Dev Mode from within Java Eclipse IDE. I'm going to cover this in the presentation as well.

[1] http://sdbg.github.io/

On Mon, Mar 27, 2017 at 8:09 PM, Vojtech Szocs <vszocs@redhat.com> wrote:
Hello UI devs,

with oVirt master UI using the latest GWT SDK [1], I'd like to host a live demo session with two goals in mind:

a, explain how the (Java IDE based) Classic Dev Mode works and mention its limitations
b, explain how the (browser based) Super Dev Mode works and encourage people to start using it to boost their productivity
The Classic vs. Super Dev Mode are two possible ways to debug GWT applications. This session will give you the knowledge to decide which one to use in a specific situation.

Proposed time: Mon, Apr 3 @ 5pm CET / 6pm TLV / 11am US EST. (This can be changed as needed.)

Let me know if this kind of session interests you or if the above time doesn't fit you but you'd still like to join.


Devel mailing list