Re: pgadmin4 - Use classic style interface, don't launch browser?

From: Michel Feinstein <michelfeinstein(at)gmail(dot)com>
To: Avin Kavish <avinkavish(at)gmail(dot)com>
Cc: Mark Murawski <markm-lists(at)intellasoft(dot)net>, "pgadmin-support lists(dot)postgresql(dot)org" <pgadmin-support(at)lists(dot)postgresql(dot)org>
Subject: Re: pgadmin4 - Use classic style interface, don't launch browser?
Date: 2019-07-30 03:09:01
Message-ID: CAEg4jbMpHQtNrN1yp3mUiLohACbQLYqHxKfp8vCur6xdd=-i-w@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgadmin-support

Also, I run Firefox with 4 windows, each one with hundreds of tabs (I have
easily 500+ tabs in total), I don't restart Windows 10 for months and I
don't have any issues here.

On Tue, Jul 30, 2019, 00:03 Avin Kavish <avinkavish(at)gmail(dot)com> wrote:

> Hey Mark,
>
> I find this hard to believe as chrome uses process isolation per site
> <https://www.chromium.org/Home/chromium-security/site-isolation> by
> default. I believe firefox does too
> <https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Multiprocess_Firefox>.
> Whenever a website crashes only that tab crashes. It will prompt you to
> recover or kill that tab in isolation. I'm a web developer too and I
> sometimes let infinite recursion get through in my apps but I usually end
> up being able to kill the tab without affecting the rest of my work. Maybe
> the setting is turned off on your pc, you can check here,
> chrome://flags/#site-isolation-trial-opt-out
>
> Regards,
> Avin
>
> On Tue, Jul 30, 2019 at 12:01 AM Mark Murawski <
> markm-lists(at)intellasoft(dot)net> wrote:
>
>> Wow.. I go on vacation for a few days and I find this heated thread
>> going full speed ahead!
>>
>> Interesting history on why the removal of the 'native interface' occurred.
>>
>> I do a lot of web work and routinely wind up with locked up or crashed
>> browsers, so having pgadmin4 run in a browser tab is less than ideal..
>> although sometimes I run firefox/chrome as another user to have some
>> memory/process separation so that not ALL of my browsers die when
>> chrome/firefox barfs up a big one. I suppose I could maintain yet
>> another user and make sure I start up pgadmin4 as that.
>>
>> Would there be a possibility of embedding chromium? Since of course
>> it's actively developed and everyone including their pet cat are using
>> it as a rendering engine these days (including microsoft) Not sure of
>> the compatibility with the BSD license would go...
>>
>>
>>
>>
>> On 7/28/19 2:54 PM, richard coleman wrote:
>> > Avin,
>> >
>> > Let me start by saying;
>> > grinning_face_with_smiling_eyes.png
>> >
>> >
>> > On Sun, Jul 28, 2019 at 3:43 AM Avin Kavish <avinkavish(at)gmail(dot)com
>> > <mailto:avinkavish(at)gmail(dot)com>> wrote:
>> >
>> > They weren't aimed directly at anyone in particular. They were
>> > suggestions for go-getters who like to take control of their own
>> > fate and instead of waiting for the randomness of the universe to
>> > deliver unto them what they seek. Maybe I should have put a warning
>> > saying "not for the faint hearted, requires effort and reading docs
>> > to accomplish"
>> > Your missive appeared directed at the fella who was complaining
>> > about the problems that pgAdmin4 relying on a browser was causing
>> > him, especially in regards to password management. I apologize if I
>> > misunderstood.
>> >
>> > so he would need to install nodejs, npm, nativefier, either open a
>> > command line/terminal every time he wants to start pgAdmin4 or write
>> > a batch/shell script to start it. He would also have to remember to
>> > start the pgAdmin /server/ separately and forget about using the
>> > "New pgAdmin window" function. To add insult to injury, he'd have
>> > to have separate scripts/commands if he should want a tray icon or
>> > to run it full screen.
>> >
>> > ^ With the way you word things, even standing up sounds hard. It's
>> > all perspective, it's accomplishable with a bit of effort. While it
>> > may not be possible to get nativefier to behave as described above,
>> > because it's an automated tool, you can script electron to do all of
>> > the above for you.
>> > That depends on the person, for some people /putting in half a dozen
>> > stitches /is accomplishable with a bit of effort (heck I've done it
>> > myself, painful but surely doable). I would still recommend someone
>> > who's sliced themselves open go to the emergency room, or at least
>> > see a doctor. But I guess it's all a matter of /perspective/ 😉.
>> >
>> >
>> > To add insult to injury,
>> >
>> > ^ There are no insults nor injuries mate, surely nothing physical.
>> > It leads me to believe that you are referring to emotional injury.
>> > Which then leads me to conclude that you are too emotional about
>> > this whole business of administering a database thing. Or maybe you
>> > are a fan of hyperbole, I don't know. Tone is up to interpretation
>> > in written communication.
>> >
>> > Actually that's called /a figure of speech /[ *no end users were harmed
>> > in the writing of the previous email*].
>> >
>> >
>> > quite often actually. I have /lots/ of work to do that doesn't
>> > involve a web browser.
>> >
>> > ^ Sure, do that work and also keep the web browser open? How does a
>> > web browser window interrupt your work? How is it any different from
>> > having a dedicated window open? Do you run out of RAM or something?
>> > Do you accidentally start browsing memes when you have a browser
>> > open? What's the problem? Be explicit about what's wrong with the
>> > browser.
>> >
>> > In my case, I don't need it, and yes I *do* run out of RAM or
>> > something (Can I have just a /little more RAM sir? )😋./
>> >
>> >
>> > pulling the tab out wouldn't do *anything* toward solving his
>> > problem, which revolved around password management
>> >
>> > ^ It wasn't meant to solve the password problem but needing a
>> > standalone window problem, which is also mentioned in the write up.
>> > In fact, this email wasn't aimed at anyone in particular. It is a
>> > general write up with a few suggestions for all the standalone
>> > window needs I've seen over the past few days. I haven't directly
>> > addressed anyone. I'm not sure you who you are referring to by
>> > "his". I'm just a developer sharing my knowledge in hopes that
>> > someone would benefit from it.
>> >
>> > I don't know, but I am pretty sure /most/ people these days (with
>> the
>> > possible exception of my over 70 father) know how to either pull off a
>> > tab, or start another instance of their web browser. '/His/' was the
>> > person who wrote the initial email complaining about pgAdmin4 running
>> in
>> > a browser and making a mess of his password management.
>> >
>> >
>> > Personally I have my own issues with the decision to write pgAdmin4
>> > as a /web app/ running in it's own self contained web server.
>> > However I don't think that there is much of a desire among the
>> > /official/ dev team to change this
>> >
>> > ^ pgAdmin4 cannot be changed from a client-server architecture to
>> > anything else. It is too late. A re-write would be required, which
>> > is a breaking change. The only possibility is to affect the design
>> > decisions of pgAdmin5 or 6. If anyone makes a factual and formal
>> > presentation of why the existing client-server architecture should
>> > be replaced with something else rather than improving it, we could
>> > have a serious discussion. But I doubt it, I think everything can be
>> > improved within the current architecture.
>> > Yes, as a developer I realize the work it would take at this stage
>> > to create an actual client program as opposed to the embedded web
>> > server that it is now. Which is why I wrote that I don't see much
>> > of a desire among the official dev team to change things. If you,
>> > or any member of the dev team wants to have a serious discussion
>> > about the merits and limitations of the current architecture with a
>> > goal of possibly changing things, I'm all for it. Unfortunately it
>> > appears that the design and road map have already been determined by
>> > the current dev team. With the exception of reported bugs, or
>> > unforeseen issues, they don't appear to be open to any substantial
>> > changes.
>> >
>> > One thing I don't see in these emails is any credible facts and
>> > arguments against browsers, just a statement of personal unhappiness
>> > at the change of status quo. Maybe, if arguments based on facts that
>> > affect user experience, security or performance were provided, the
>> > team would do something about them, as they have been doing since
>> > the start. Instead, I see complaints. I don't see constructive
>> > feedback on possible improvements on this topic. I don't see
>> > solutions. I don't even see real problems.
>> > Hmmm.. where to begin.
>> >
>> > * not all browsers are supported (as evidenced by a bug report where I
>> > was told that Chromium isn't a /supported/ browser)
>> > * you have to run the UI as a separate program from the program itself
>> > * you have to worry about collisions between a /particular/ browser's
>> > short cuts and another's (Chrome is different from FireFox is
>> > different from Edge, etc.)
>> > * context (or right-click) menus aren't typical of a desktop program
>> > (no copy / paste option in the query window for example)
>> > * you are limited to a single /window /(tab)
>> > * you don't have true pop-ups/dialog boxes/notifications
>> > * if you detach a query editor panel, you can't reattach it (though
>> > that's hopefully just an unresolved bug)
>> > * your /session/ is now open to attacks from malicious plugins or
>> > random people across the internet (it's a /browser/ after all)
>> > * your user / password management is effected by your particular
>> > browser's cache or policy
>> > * you're limited to the sand boxed security restrictions of the
>> > particular browser you happen to be using (try loading a 10 GB file)
>> > * disruptions of the connection between the application and the UI,
>> > timeout's etc. occur (long running pgAdmin4 sessions can cause the
>> > UI to freeze under kubuntu).
>> >
>> > Not an exhaustive listing by any stretch, just what I could come
>> > up with off the top of my head.
>> >
>> > so, your final suggestion is that, /if/ he's a javascript developer
>> > he could simply /write his own program/ to fix a perceived pgAdmin4
>> > shortcoming.
>> >
>> > ^ yeah absolutely, write your own programs without asking other
>> > people to do it for you for free of charge !!!!????? It's open
>> > source software. No one owes you anything. This is distributed
>> > without liability
>> > <https://electronjs.org/docs/api/browser-window>. The existence of
>> > postgresql and pgadmin itself are mere courtesies.
>> >
>> >
>> > 😂 No one said that they were *owed* anything. No one is claiming
>> > anyone is /liable/ for anything either. Saying that if you don't like
>> > it you should just write your own is rather short sighted. Unless the
>> > dev team is writing pgAdmin4 *only* for *themselves* then they should
>> > care about what the end users care about. Otherwise they may find that
>> > they are the only ones using it. 🤔
>> >
>> >
>> > I did not mean write an entirely new admin app, I meant embed
>> > pgAdmin4 in Electron which literally takes 5 lines of code as a
>> > start <https://electronjs.org/docs/api/browser-window>. 1. Create
>> a
>> > browser window. 2. Point it to pgAdmin4 URL. 3. Enjoy !!. If you
>> > know SQL, this is definitely do-able. And no it's not like the
>> > normal browser window. It will look like a normal app. Or you could
>> > increase the immersion by creating a frameless window but you may
>> > not be able to close it normally.
>> > https://electronjs.org/docs/api/frameless-window
>> >
>> > Here's a starting point. Follow this getting started
>> > <https://electronjs.org/docs/tutorial/first-app>first and replace
>> > the code in main.js
>> >
>> > |const { app, BrowserWindow } = require('electron') let win function
>> > createWindow () { win = new BrowserWindow({ width: 800, height: 600,
>> > webPreferences: { nodeIntegration: true } }) win.loadURL('|
>> http://127.0.0.1:45707/browser/') // <--- Fix the port number and point
>> this address to it.
>> >
>> > |win.on('closed', () => { win = null }) } app.on('ready',
>> > createWindow) app.on('window-all-closed', () => { if
>> > (process.platform !== 'darwin') { app.quit() } }) app.on('activate',
>> > () => { if (win === null) { createWindow() } })|
>> >
>> > That's all there is to it. Once you have that working, you can take
>> > it a step further by getting electron to launch the pgadmin4 server
>> > if it is not running already by using spawn
>> > <
>> https://nodejs.org/api/child_process.html#child_process_child_process_execsync_command_options
>> >
>> >
>> > It's nice that you included the above, but it's not terribly helpful
>> > to the /non/-programmer. I could write the Lorentz transformation
>> > equations to handle relative velocities in special relativity
>> >
>> > image.png
>> >
>> > but unless you're familiar with differential calculus and special
>> > relativity it's not very helpful.
>> >
>> > *Maybe an alternate launch option based on Electron should be an
>> > officially supported feature ?*
>> >
>> > Maybe. Though I think it would have to handle the above mentioned
>> > limitations, and be /built in/ for it to help *most* people.
>> >
>> > So there, no attacks, insults, or other /negativity. / Just one man's
>> > opinion.
>> >
>> >
>> >
>> > On Sun, Jul 28, 2019 at 1:07 AM richard coleman
>> > <rcoleman(dot)ascentgl(at)gmail(dot)com <mailto:rcoleman(dot)ascentgl(at)gmail(dot)com>>
>> > wrote:
>> >
>> > Hi Avin,
>> >
>> > My $0.02
>> >
>> > On Sat, Jul 27, 2019 at 2:11 PM Avin Kavish
>> > <avinkavish(at)gmail(dot)com <mailto:avinkavish(at)gmail(dot)com>> wrote:
>> >
>> > Hey,
>> >
>> > Here's some unofficial input on the topic.
>> >
>> > This request baffles me for two reasons.
>> >
>> > a. Why does one need a standalone window when they can have
>> > pgAdmin open in a tab while multi-tasking. Is there ever a
>> > time when the web browser is closed while using a pc in
>> > 2019? If you lose tabs you can pin the tab and it will
>> > always be on the left side.
>> >
>> > quite often actually. I have /lots/ of work to do that doesn't
>> > involve a web browser.
>> >
>> > b. If you want it to run in it's own window, you can drag
>> > and pull the tab to it's own standalone window.
>> >
>> > pulling the tab out wouldn't do *anything* toward solving his
>> > problem, which revolved around password management
>> >
>> > If that doesn't solve your problem,
>> >
>> > You can try Nativefier but you might need to launch pgAdmin
>> > on the same port each time. It basically wraps any web site
>> > in an electron app. Electron fyi allows developing desktop
>> > apps using web technologies. It's based on chromium and
>> > nodejs and renders web apps just like google chrome would.
>> > https://github.com/jiahaog/nativefier
>> >
>> > so he would need to install nodejs, npm, nativefier, either
>> > open a command line/terminal every time he wants to start
>> > pgAdmin4 or write a batch/shell script to start it. He would
>> > also have to remember to start the pgAdmin /server/ separately
>> > and forget about using the "New pgAdmin window" function. To
>> > add insult to injury, he'd have to have
>> > separate scripts/commands if he should want a tray icon or to
>> > run it full screen.
>> >
>> >
>> > Or if you are a javascript developer you can write an
>> > electron app yourself to encapsulate and extend upon the
>> > current functionality. https://electronjs.org/
>> >
>> > so, your final suggestion is that, /if/ he's a javascript
>> > developer he could simply /write his own program/ to fix a
>> > perceived pgAdmin4 shortcoming.
>> >
>> > Personally, I find it convenient to have it as a tab while
>> > reading docs and other stuff and often prefer it to
>> > switching to my IDE.
>> >
>> > I'm glad that you find the current set up convenient,
>> > unfortunately it seems like this is a problem for at least Mark
>> > and tutiluren.
>> >
>> > Once again, this is unofficial. I'm not part of the team.
>> >
>> > neither am I.
>> >
>> > Personally I have my own issues with the decision to write
>> > pgAdmin4 as a /web app/ running in it's own self contained web
>> > server. However I don't think that there is much of a desire
>> > among the /official/ dev team to change this.
>> >
>> > rik.
>> >
>> > Regards,
>> > Avin
>> >
>> > On Sat, Jul 27, 2019 at 10:51 PM Murtuza Zabuawala
>> > <murtuza(dot)zabuawala(at)enterprisedb(dot)com
>> > <mailto:murtuza(dot)zabuawala(at)enterprisedb(dot)com>> wrote:
>> >
>> > Hello,
>> >
>> > I am afraid this is not possible at a moment, pgAdmin4
>> > doesn't have its own UI rendering engine so it is
>> > dependent on the default web browser on the user's
>> system.
>> >
>> > -- Murtuza
>> >
>> > On Fri, 26 Jul 2019, 21:32 Mark Murawski,
>> > <markm-lists(at)intellasoft(dot)net
>> > <mailto:markm-lists(at)intellasoft(dot)net>> wrote:
>> >
>> > Hello!
>> >
>> > How can I go back to the traditional pgadmin4
>> > interface where it runs in
>> > its own window. I do not want to launch it as a
>> > browser tab.
>> >
>> >
>>
>>
>>
>>
>>

In response to

Browse pgadmin-support by date

  From Date Subject
Next Message Michel Feinstein 2019-07-30 03:15:33 Re: pgadmin4 - Use classic style interface, don't launch browser?
Previous Message Darren Duncan 2019-07-30 03:08:29 Re: pgadmin4 - Use classic style interface, don't launch browser?