[ovirt-devel] Live demo session on how to debug oVirt GWT applications

Vojtech Szocs vszocs at redhat.com
Tue Apr 4 17:02:26 UTC 2017


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.

​Regards,
Vojtech​


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

>
>
> On Fri, Mar 31, 2017 at 4:49 PM Vojtech Szocs <vszocs at redhat.com> wrote:
>
>> Hello,
>>
>> the slides are here: http://redhat.slides.com/vszocs/debugging-ovirt-gwt-
>> applications?token=brh5Tzaz
>>
>> 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.
>>
>> Regards,
>> Vojtech
>>
>>
>> On Tue, Mar 28, 2017 at 3:56 PM, Vojtech Szocs <vszocs at redhat.com> wrote:
>>
>> Update: moving the session to Tue, Apr 4 @ the same time as originally
>> planned.
>>
>> Regards,
>> ​V​
>> ojtech
>>
>> 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 at 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
>>
>> [1] http://www.mail-archive.com/devel@ovirt.org/msg08558.html
>>
>> 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.
>>
>> Thanks,
>> Vojtech
>>
>>
>>
>> _______________________________________________
>> Devel mailing list
>> Devel at ovirt.org
>> http://lists.ovirt.org/mailman/listinfo/devel
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ovirt.org/pipermail/devel/attachments/20170404/436f7394/attachment-0001.html>


More information about the Devel mailing list