Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1ez2rD-00023O-BZ for pgadmin-hackers@arkaria.postgresql.org; Thu, 22 Mar 2018 16:14:27 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1ez2rB-0000nB-4q for pgadmin-hackers@arkaria.postgresql.org; Thu, 22 Mar 2018 16:14:25 +0000 Received: from makus.postgresql.org ([2001:4800:1501:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1ez2rA-0000mo-I9 for pgadmin-hackers@lists.postgresql.org; Thu, 22 Mar 2018 16:14:24 +0000 Received: from mail-wm0-x236.google.com ([2a00:1450:400c:c09::236]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1ez2r2-0008O4-Kn for pgadmin-hackers@postgresql.org; Thu, 22 Mar 2018 16:14:23 +0000 Received: by mail-wm0-x236.google.com with SMTP id t7so17042526wmh.5 for ; Thu, 22 Mar 2018 09:14:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pgadmin-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=cAdPXm2HgMfRBGTSyPQ7EelXZpbt0AkALB268YLf12g=; b=o0T9I90ayq0kQYusZd7hDp96yGDNGAKE/hSKZXf7h9qKZaIT7nGPJ/5PLK7CScYzAr gUj1ee2rsNPDUC8I+RlVAV+VjKNcnnxRUULjhx/IQlvJHJQ7ioqyXG94PAM4IRYwNNYL AeC1gpwADZ0lZqOsFUlFAlwTB/3grF2TedaJiZGEN+9lr2RN245j6ReQnlkL00FrIGQd AVy7lNbzKmDE++simST4x0Amw9fXpmtuY9KN2f7PhF6ac/SSHYg3XvSfr5MzXq/V1CE7 jzDZFrRnmPpRXlL1JKrbEmmY3qhQjVWur8tbkH9DEwzinMblnC+In5nBeDHfNq9/IoCB /eOg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=cAdPXm2HgMfRBGTSyPQ7EelXZpbt0AkALB268YLf12g=; b=P2dxvIidQx/0KItEu3JQHVSAWf84DQWDBzOVkWXnpnVwND/l2Pq/TH6LwKNCeIpYyu jX6wgV2MFVSp2IA8Q8VhtdP8L2LWkVACJokWLuSIzLOgyoAHJS9jjY1zVVwZX3uYLp1Y WcSj68b2PGWRegJhtsGoRLkOLmRPTv6Y7Imzmbq858HZ/9GT3x7dxt0QX66BKpSO+8tM rpMmsfWGJYrJhMGKpXRgCDKoDfuZ28QYa4gF/Q/r9Jlr2ETAX6JjkBMELLZanyJ0mefL sTACPVoiZMkpwf3GDpstRJNq1HCtSLgxTXHEvob42NnQzO8qSdJXU2ss2sem4Ah3RwmR EIQA== X-Gm-Message-State: AElRT7FDHt0c11G+Usc3BZG/Hp31TaIfAFXtOQPKcz3H+WHjIqMn+NoT ExI3+tGLlI9pyPUJo9ck+gFWx1S8ZokYVKFbYt/C3A== X-Google-Smtp-Source: AG47ELvywqGOsvHyvUnElH9slXuEJYYIIe81Fw0GJw9oBo+bMZrr/sTm+GzJWQeutRTGMkOVfNr6SafyWpPBRucEG7w= X-Received: by 10.28.27.211 with SMTP id b202mr2160880wmb.154.1521735254887; Thu, 22 Mar 2018 09:14:14 -0700 (PDT) MIME-Version: 1.0 Received: by 10.28.69.220 with HTTP; Thu, 22 Mar 2018 09:14:14 -0700 (PDT) In-Reply-To: References: From: Dave Page Date: Thu, 22 Mar 2018 16:14:14 +0000 Message-ID: Subject: Re: Showstopper desktop runtime issue To: Joao De Almeida Pereira Cc: Murtuza Zabuawala , pgadmin-hackers , Akshay Joshi , Neel Patel , Ashesh Vashi , Robert Eckhardt Content-Type: multipart/alternative; boundary="001a114b3ab84f653705680299eb" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --001a114b3ab84f653705680299eb Content-Type: text/plain; charset="UTF-8" Hi On Thu, Mar 22, 2018 at 2:57 PM, Joao De Almeida Pereira < jdealmeidapereira@pivotal.io> wrote: > Hello Hackers, > Here is our take on the 3 options present: > 1) QtWebkit and QtWebEngine > > Pros: > - Webkit is a mature technology that as been around for some time > - Apparently the Fork of Webkit we were using as been catching up > Cons: > - We are using a Fork > - It is to far behind of the today browsers and the competition keep > evolving making it even harder for them to catch up > - Problems with the environment from the past, lagginess, lack of support > > 2) Rework runtime to find a running PGAdmin and attach to it > > Pros: > - We already made the big move from Webkit to this version > - Add smarts to the application to do not run itself if it is already > running, or kill the currently running application > > Cons: > - More C++ code thrown around > - Add more dependency on our QT application > - Have specific code for Gnome, not even a OS version but a window manager > > 3) Electron > > Pros: > - Full Javascript runtime, no more C++ code to handle > - Self packaging for all the environments > Cons: > - No fully supported on Linux based OS with old libstdc++, (This might > solve the problem: https://github.com/mattermost/desktop/issues/312) > - CPU/RAM high utilization (Found a issues around and the majority of them > have solutions like CSS animations running or settings on the created > windows) > - Electron does not support tabs by default, only HTML tabs > > After combing through these options with some pros and cons here are my > thoughts: > 1) This options was always cluncky from the beginning, the fact that we > are working with a browser that is currently 26k commits behind > Webkit:master is concerning. So I do not believe this is a viable option. > As a personal opinion is we need to release fast, then we should go with > what we have now and not go back to this option. > 2) This option is not very appealing to me, because we would be pilling > code into the QT portion of the application, that I hope we remove in the > future, that currently is untested to solve a problem caused by a Window > Manager...... > I would be more in favor of creating a Application Indicator that would > support 2 actions, Kill running pgAdmins and launch the browser to access > them. There is a lot of interesting websites that talk about this, and how > to develop. I had to download one to have a docker indicator..... But as I > said in a previous thread, I believe that this should be a 3rd party > application and not a first class citizen on pgAdmin, as the majority of > the ones that I found are. > 3) Electron can to play, first when we though about removing QTWebkit, > because it always packs a browser with it and also and there is a very big > Open Source Community being it. It came back again when when we saw that we > were ready to ditch the browser. (As a personal note I dislike applications > that I install in my machine and pop browser open to do anything, this is a > personal issue that I would like to see if it was shared by others that was > why we decided to park Electron for a second time. Because if our users are > ok with it there is no need to add extra complexity to the product) > The most interesting thing about the cons that I found in Electron there > is an issue open for them and a bunch of different solutions to try to > handle it, or even advises on how to handle it. This option also allow us > to focus less on browser compatibility as the main target of our > development will become Chromium which is the base of browsers like UC > Browser, Vivaldi, Opera, Google Chrome. > > As you could see from my long long email, I am biased towards options 3, > not because I started the push for it, but because I believe it is the > right step for this product. This being said, I think that releasing now > with this current issue is Ok as a first step to somewhere. > I think in the longer term, 3 is probably the best option. Whilst the current architecture (where it works) is a good improvement and gets rid of the QtWebKit/QtWebEngine problems, I'm not a huge fan of having a server and browser; I much prefer the idea of having a single app. How much effort do you think it would be to get the Electron based browser to a usable state, in which everything is nicely packaged and buildable, but without the tab support? -- Dave Page Blog: http://pgsnake.blogspot.com Twitter: @pgsnake EnterpriseDB UK: http://www.enterprisedb.com The Enterprise PostgreSQL Company --001a114b3ab84f653705680299eb Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi

On Thu, Mar 22, 2018 at 2:57 PM, Joao De Almeida Pereira <jdealmeidapereira@pivotal.io> wrote:
Hello Hackers,
Here is our take on the 3 op= tions present:
1) QtWebkit and QtWebEngine

Pros:
- Webkit is a mature technology that as been around for = some time
- Apparently the Fork of Webkit we were using as been c= atching up
Cons:
- We are using a Fork
- It i= s to far behind of the today browsers and the competition keep evolving mak= ing it even harder for them to catch up
- Problems with the envir= onment from the past, lagginess, lack of support

2= ) Rework runtime to find a running PGAdmin and attach to it

<= /div>
Pros:
- We already made the big move from Webkit to thi= s version
- Add smarts to the application to do not run itself if= it is already running, or kill the currently running application=C2=A0

Cons:
- More C++ code thrown around
- Add more dependency on our QT application
- Have specific co= de for Gnome, not even a OS version but a window manager

3) Electron

Pros:
- Full Javascri= pt runtime, no more C++ code to handle
- Self packaging for all t= he environments
Cons:
- No fully supported on Linux bas= ed OS with old=C2=A0libstdc++, (This might solve the problem:=C2=A0https://github.com/matt= ermost/desktop/issues/312)
- CPU/RAM high utilization (Found a issues around and t= he majority of them have solutions like CSS animations running or settings = on the created windows)
- Electron does not support tabs by default, only HTML tabs

After combing throu= gh these options with some pros and cons=C2=A0 here are my thoughts:=
1) This options w= as always cluncky from the beginning, the fact that we are working with a b= rowser that is currently 26k commits behind Webkit:master is concerning. So= I do not believe this is a viable option. As a personal opinion is we need= to release fast, then we should go with what we have now and not go back t= o this option.
2) This option is not very appealing=C2=A0to me, because we would be pi= lling code into the QT portion of the application, that I hope we remove in= the future, that currently is untested to solve a problem caused by a Wind= ow Manager......
I would be more in favor of creating a Application Indicator that wou= ld support 2 actions, Kill running pgAdmins and launch the browser to acces= s them. There is a lot of interesting websites that talk about this, and ho= w to develop. I had to download one to have a docker indicator..... But as = I said in a previous thread, I believe that this should be a 3rd party appl= ication and not a first class citizen on pgAdmin, as the majority of the on= es that I found are.
3) Electron can to play, first when we though about removing QT= Webkit, because it always packs a browser with it and also and there is a v= ery big Open Source Community being it. It came back again when when we saw= that we were ready to ditch the browser. (As a personal note I dislike app= lications that I install in my machine and pop browser open to do anything,= this is a personal issue that I would like to see if it was shared by othe= rs that was why we decided to park Electron for a second time. Because if o= ur users are ok with it there is no need to add extra complexity to the pro= duct)
The m= ost interesting thing about the cons that I found in Electron there is an i= ssue open for them and a bunch of different solutions to try to handle it, = or even advises on how to handle it. This option also allow us to focus les= s on browser compatibility as the main target of our development will becom= e Chromium which is the base of browsers like UC Browser, Vivaldi, Opera, G= oogle Chrome.

As = you could see from my long long email, I am biased towards options 3, not b= ecause I started the push for it, but because I believe it is the right ste= p for this product. This being said, I think that releasing now with this c= urrent issue is Ok as a first step to somewhere.
<= /blockquote>

I think in the longer term, 3 is probably t= he best option. Whilst the current architecture (where it works) is a good = improvement and gets rid of the QtWebKit/QtWebEngine problems, I'm not = a huge fan of having a server and browser; I much prefer the idea of having= a single app.

How much effort do you think it wou= ld be to get the Electron based browser to a usable state, in which everyth= ing is nicely packaged and buildable, but without the tab support?=C2=A0

--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnak= e

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Compa= ny
--001a114b3ab84f653705680299eb--