Thread: pgadmin4 - Use classic style interface, don't launch browser?
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.
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@intellasoft.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.
Hey,
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.
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.
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
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/
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.
Once again, this is unofficial. I'm not part of the team.
Regards,
Avin
On Sat, Jul 27, 2019 at 10:51 PM Murtuza Zabuawala <murtuza.zabuawala@enterprisedb.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.-- MurtuzaOn Fri, 26 Jul 2019, 21:32 Mark Murawski, <markm-lists@intellasoft.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.
Hi Avin,
My $0.02
On Sat, Jul 27, 2019 at 2:11 PM Avin Kavish <avinkavish@gmail.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,AvinOn Sat, Jul 27, 2019 at 10:51 PM Murtuza Zabuawala <murtuza.zabuawala@enterprisedb.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.-- MurtuzaOn Fri, 26 Jul 2019, 21:32 Mark Murawski, <markm-lists@intellasoft.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.
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"
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.
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.
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.
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.
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.
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.
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. The existence of postgresql and pgadmin itself are mere courtesies.
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. 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
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
Maybe an alternate launch option based on Electron should be an officially supported feature ?
On Sun, Jul 28, 2019 at 1:07 AM richard coleman <rcoleman.ascentgl@gmail.com> wrote:
Hi Avin,My $0.02On Sat, Jul 27, 2019 at 2:11 PM Avin Kavish <avinkavish@gmail.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 managementIf 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/nativefierso 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,AvinOn Sat, Jul 27, 2019 at 10:51 PM Murtuza Zabuawala <murtuza.zabuawala@enterprisedb.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.-- MurtuzaOn Fri, 26 Jul 2019, 21:32 Mark Murawski, <markm-lists@intellasoft.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.
Avin,
Let me start by saying;
![grinning_face_with_smiling_eyes.png](/media/maillist_attaches/pgadmin-support/2019/07/28/CAGA3vBuhhz7e3ZkF9G78zy3mLxi57bYEMscCkwLoBgom1LsG9g@mail.gmail.com/grinning_face_with_smiling_eyes.png)
On Sun, Jul 28, 2019 at 3:43 AM Avin Kavish <avinkavish@gmail.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. 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. 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-windowconst { 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 spawnIt'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
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.ascentgl@gmail.com> wrote:Hi Avin,My $0.02On Sat, Jul 27, 2019 at 2:11 PM Avin Kavish <avinkavish@gmail.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 managementIf 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/nativefierso 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,AvinOn Sat, Jul 27, 2019 at 10:51 PM Murtuza Zabuawala <murtuza.zabuawala@enterprisedb.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.-- MurtuzaOn Fri, 26 Jul 2019, 21:32 Mark Murawski, <markm-lists@intellasoft.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.
Attachment
To try to bring some clarity here:
As this is a "nice to have" rather than a bug or feature that gives more direct benefit to users, I, and the team at EDB that work on pgAdmin have been hacking on it in spare time. If someone wants to take this on as a project, their input would be more than welcome.- Version 1.x and 2.x used a built-in browser as is being requested. We had builds based on QtWebEngine and QtWebKit (the runtime is built on Qt, the other option being wxWidgets - which we used and had many, many problems with - for pgAdmin3). QtWebKit was rapidly falling out of support and had rendering and other issues, and QtWebEngine was the primary cause of countless complaints of poor performance from users. Moving to use an external browser for the UI solved *many* issues, albeit at the cost of the slightly less convenient client/server architecture.
- We have looked at various other alternatives to use a built-in browser. None of them were feasible for us (either immature or unmaintained code, or would require more effort than we could give to work on all supported platforms).
- The only option that has appeared feasible is to use Electron, for which we have an early PoC branch of the code at https://git.postgresql.org/gitweb/?p=pgadmin4.git;a=shortlog;h=refs/heads/electron, and a more recent branch at https://git.postgresql.org/gitweb/?p=pgadmin4.git;a=shortlog;h=refs/heads/electron2/. The second branch is based on the work of the first - it was just easier to rebase all the changes into a new branch than to merge everything from master back into the original electron branch. There's also a rough TODO list at https://redmine.postgresql.org/projects/pgadmin4/wiki/Electron_TODO_list
On Sun, Jul 28, 2019 at 7:55 PM richard coleman <rcoleman.ascentgl@gmail.com> wrote:
Avin,Let me start by saying;On Sun, Jul 28, 2019 at 3:43 AM Avin Kavish <avinkavish@gmail.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. 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. 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-windowconst { 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 spawnIt'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 relativitybut 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.ascentgl@gmail.com> wrote:Hi Avin,My $0.02On Sat, Jul 27, 2019 at 2:11 PM Avin Kavish <avinkavish@gmail.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 managementIf 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/nativefierso 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,AvinOn Sat, Jul 27, 2019 at 10:51 PM Murtuza Zabuawala <murtuza.zabuawala@enterprisedb.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.-- MurtuzaOn Fri, 26 Jul 2019, 21:32 Mark Murawski, <markm-lists@intellasoft.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.
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake
EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake
EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
Attachment
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@gmail.com > <mailto:avinkavish@gmail.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 numberand 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.ascentgl@gmail.com <mailto:rcoleman.ascentgl@gmail.com>> > wrote: > > Hi Avin, > > My $0.02 > > On Sat, Jul 27, 2019 at 2:11 PM Avin Kavish > <avinkavish@gmail.com <mailto:avinkavish@gmail.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.zabuawala@enterprisedb.com > <mailto:murtuza.zabuawala@enterprisedb.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@intellasoft.net > <mailto:markm-lists@intellasoft.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. > >
Hey Mark,
I find this hard to believe as chrome uses process isolation per site by default. I believe firefox does too. 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@intellasoft.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@gmail.com
> <mailto:avinkavish@gmail.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.ascentgl@gmail.com <mailto:rcoleman.ascentgl@gmail.com>>
> wrote:
>
> Hi Avin,
>
> My $0.02
>
> On Sat, Jul 27, 2019 at 2:11 PM Avin Kavish
> <avinkavish@gmail.com <mailto:avinkavish@gmail.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.zabuawala@enterprisedb.com
> <mailto:murtuza.zabuawala@enterprisedb.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@intellasoft.net
> <mailto:markm-lists@intellasoft.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.
>
>
Yes, every modern browser uses a separate process per browser tab. Besides the mentioned Firefox and Chrome, Safari also does it. So generally a page crash shouldn't affect anything but that page, or if a page consumes a lot of RAM or CPU, it can be independently killed by a regular system process manager. -- Darren Duncan On 2019-07-29 8:02 p.m., Avin Kavish 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 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...
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@gmail.com> wrote:
Hey Mark,I find this hard to believe as chrome uses process isolation per site by default. I believe firefox does too. 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-outRegards,AvinOn Tue, Jul 30, 2019 at 12:01 AM Mark Murawski <markm-lists@intellasoft.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@gmail.com
> <mailto:avinkavish@gmail.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.ascentgl@gmail.com <mailto:rcoleman.ascentgl@gmail.com>>
> wrote:
>
> Hi Avin,
>
> My $0.02
>
> On Sat, Jul 27, 2019 at 2:11 PM Avin Kavish
> <avinkavish@gmail.com <mailto:avinkavish@gmail.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.zabuawala@enterprisedb.com
> <mailto:murtuza.zabuawala@enterprisedb.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@intellasoft.net
> <mailto:markm-lists@intellasoft.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.
>
>
I believe Firefox doesn't use one process per tab, but does use multi-process on its own way.
On Tue, Jul 30, 2019, 00:08 Darren Duncan <darren@darrenduncan.net> wrote:
Yes, every modern browser uses a separate process per browser tab. Besides the
mentioned Firefox and Chrome, Safari also does it. So generally a page crash
shouldn't affect anything but that page, or if a page consumes a lot of RAM or
CPU, it can be independently killed by a regular system process manager. --
Darren Duncan
On 2019-07-29 8:02 p.m., Avin Kavish 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 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 Mon, Jul 29, 2019 at 7:31 PM Mark Murawski <markm-lists@intellasoft.net> wrote:
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...
It's technically possible of course (one most, but not all of our supported platforms), but would be a massive amount of work, probably tying up most of my team for months whilst they figure out how to glue all the pieces together into Qt on Windows, Mac and Linux. I'd far rather they were building actual features.
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake
EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake
EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
Dave,
That's true. Of course that's the ultimate draw back of the client/server model. Having just a server isn't enough, you need a client as well. pgAdmin4 is just the server portion of that model. It's relying on borrowing someone else's client. That's frees up quite a bit of resources, not having to write an actual client. Unfortunately that means you have to deal with all of the limitations; speed, footprint, compatibility, security, capabilities that that entails. Contrary to the thought in some circles, not everything is amenable to being served through a web browser.
just one man's opinion.
On Tue, Jul 30, 2019 at 4:10 AM Dave Page <dpage@pgadmin.org> wrote:
--On Mon, Jul 29, 2019 at 7:31 PM Mark Murawski <markm-lists@intellasoft.net> wrote:
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...It's technically possible of course (one most, but not all of our supported platforms), but would be a massive amount of work, probably tying up most of my team for months whilst they figure out how to glue all the pieces together into Qt on Windows, Mac and Linux. I'd far rather they were building actual features.Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake
EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
On the topic of speed, the current limitation is not imposed by the fact that it is run inside the browser, fyi some really popular and successful apps are web based, even visual studio code. It's more of an architectural and design problem than a platform issue. I'm not very familiar with the code yet, but I suspect the following could be factors,
- a lack of caching on both the client and the server,
- excessive amounts of DOM nodes (currently around 4000 at idle),
- excessive nesting using tables,
- lack of a view reconciliation library such as React/Angular
- usage of AMD modules making dead-code elimination (tree-shaking) impossible, if asynchronous loading was the intention, webpack supports dynamic imports with ESModules while retaining the benefits of tree-shaking.
- lack of skeleton uis that are perceived as being faster - most top sites do this now making them look faster even if the time to interactive is the same
- waiting on ajax requests before loading UIs, (theory) (the query tool takes 2-3s to open, is this why?)
There's more to discover, I'm still reading through.
Modern UI design philosophy is to react immediately to user response by showing something as close to the real interface as possible and then to load the data asynchronously behind a loading indicator, which is done in some situations but often not convincing enough or not immediate enough. (again, query tool, anywhere between 2-4s till first paint) Anywhere over one second and frustration sets in. 100ms should be the target to keep power users happy.
More info:
Performance: https://developers.google.com/web/fundamentals/performance/rail
Performance: https://developers.google.com/web/fundamentals/performance/rail
The best way to identify areas that require improvement is to run the lighthouse auditing tool.
On Tue, Jul 30, 2019 at 5:46 PM richard coleman <rcoleman.ascentgl@gmail.com> wrote:
Dave,That's true. Of course that's the ultimate draw back of the client/server model. Having just a server isn't enough, you need a client as well. pgAdmin4 is just the server portion of that model. It's relying on borrowing someone else's client. That's frees up quite a bit of resources, not having to write an actual client. Unfortunately that means you have to deal with all of the limitations; speed, footprint, compatibility, security, capabilities that that entails. Contrary to the thought in some circles, not everything is amenable to being served through a web browser.just one man's opinion.On Tue, Jul 30, 2019 at 4:10 AM Dave Page <dpage@pgadmin.org> wrote:--On Mon, Jul 29, 2019 at 7:31 PM Mark Murawski <markm-lists@intellasoft.net> wrote:
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...It's technically possible of course (one most, but not all of our supported platforms), but would be a massive amount of work, probably tying up most of my team for months whilst they figure out how to glue all the pieces together into Qt on Windows, Mac and Linux. I'd far rather they were building actual features.Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake
EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
Avin,
Visual Studio Code (VSC) [a very nice if somewhat heavy weight editor] is written in part using the Electron Framework {https://en.wikipedia.org/wiki/Visual_Studio_Code} so it's using Node.js and the Blink rendering engine as well as C++ and C#. It's not using Atom, nor can it be considered a browser by any definition. VSC is a traditional desktop application complete with it's own UI aimed squarely at the desktop. When you close it, you are stopping the application. If you open multiple windows, you are running multiple instances. It's just makes use of traditional web technologies in its development.
Just thought I would clear that up,
On Tue, Jul 30, 2019 at 10:37 PM Avin Kavish <avinkavish@gmail.com> wrote:
On the topic of speed, the current limitation is not imposed by the fact that it is run inside the browser, fyi some really popular and successful apps are web based, even visual studio code. It's more of an architectural and design problem than a platform issue.
I'm not very familiar with the code yet, but I suspect the following could be factors,
- a lack of caching on both the client and the server,
- excessive amounts of DOM nodes (currently around 4000 at idle),
- excessive nesting using tables,
- lack of a view reconciliation library such as React/Angular
- usage of AMD modules making dead-code elimination (tree-shaking) impossible, if asynchronous loading was the intention, webpack supports dynamic imports with ESModules while retaining the benefits of tree-shaking.
- lack of skeleton uis that are perceived as being faster - most top sites do this now making them look faster even if the time to interactive is the same
- waiting on ajax requests before loading UIs, (theory) (the query tool takes 2-3s to open, is this why?)
There's more to discover, I'm still reading through.Modern UI design philosophy is to react immediately to user response by showing something as close to the real interface as possible and then to load the data asynchronously behind a loading indicator, which is done in some situations but often not convincing enough or not immediate enough. (again, query tool, anywhere between 2-4s till first paint) Anywhere over one second and frustration sets in. 100ms should be the target to keep power users happy.More info:
Performance: https://developers.google.com/web/fundamentals/performance/railThe best way to identify areas that require improvement is to run the lighthouse auditing tool.On Tue, Jul 30, 2019 at 5:46 PM richard coleman <rcoleman.ascentgl@gmail.com> wrote:Dave,That's true. Of course that's the ultimate draw back of the client/server model. Having just a server isn't enough, you need a client as well. pgAdmin4 is just the server portion of that model. It's relying on borrowing someone else's client. That's frees up quite a bit of resources, not having to write an actual client. Unfortunately that means you have to deal with all of the limitations; speed, footprint, compatibility, security, capabilities that that entails. Contrary to the thought in some circles, not everything is amenable to being served through a web browser.just one man's opinion.On Tue, Jul 30, 2019 at 4:10 AM Dave Page <dpage@pgadmin.org> wrote:--On Mon, Jul 29, 2019 at 7:31 PM Mark Murawski <markm-lists@intellasoft.net> wrote:
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...It's technically possible of course (one most, but not all of our supported platforms), but would be a massive amount of work, probably tying up most of my team for months whilst they figure out how to glue all the pieces together into Qt on Windows, Mac and Linux. I'd far rather they were building actual features.Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake
EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
Hey Avin, I am using process isolation, but the issue is that the main chrome/firefox stops behaving normally. And it's not just on my pc. It's like the network stack crashes inside the browser or locks up or something like that. I'll run into a situation where pages just no longer load. I can select an existing tab and scroll around, and click on things and sometimes the tab still works, sometimes it doesn't. Closing that tab and opening a new one and then entering a new url will just result in a blank page and nothing loads. Restarting the browser solves the issue. It's fairly rare these days, but sometimes the entire browser just 'breaks'. On 7/29/19 11:02 PM, Avin Kavish 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 >
Mark,
I can concur (in Kubuntu 18.04). It has happened on occasion in FireFox (both current and ESR), Chrome, Chromium, Vivaldi (yea those last three are basically the same thing, I know ;) ). That's why I have a separate install of Chromium that is just used for pgAdmin4. So when the browser crashes (for whatever reason) it doesn't take down pgAdmin and when pgAdmin goes pear shaped, it doesn't take everything else down.
rik.
On Fri, Aug 2, 2019 at 3:38 PM Mark Murawski <markm-lists@intellasoft.net> wrote:
Hey Avin,
I am using process isolation, but the issue is that the main
chrome/firefox stops behaving normally. And it's not just on my pc.
It's like the network stack crashes inside the browser or locks up or
something like that.
I'll run into a situation where pages just no longer load. I can select
an existing tab and scroll around, and click on things and sometimes the
tab still works, sometimes it doesn't. Closing that tab and opening a
new one and then entering a new url will just result in a blank page and
nothing loads.
Restarting the browser solves the issue.
It's fairly rare these days, but sometimes the entire browser just 'breaks'.
On 7/29/19 11:02 PM, Avin Kavish 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
>