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 <avinkav...@gmail.com <mailto:avinkav...@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.ascen...@gmail.com <mailto:rcoleman.ascen...@gmail.com>>
    wrote:

        Hi Avin,

        My $0.02

        On Sat, Jul 27, 2019 at 2:11 PM Avin Kavish
        <avinkav...@gmail.com <mailto:avinkav...@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.zabuaw...@enterprisedb.com
            <mailto:murtuza.zabuaw...@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-li...@intellasoft.net
                <mailto:markm-li...@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.






Reply via email to