Douglas, that's a vast collection of screenshots, most of which seem appalling. Debugging in the atomspace is .. a whole nuther issue. --linas
On Thu, Jul 1, 2021 at 9:23 AM Douglas Miles <[email protected]> wrote: > Btw, I too am for an example [G]UI in which can be used by as a debugging > pipeline for linguists here are some examples > https://logicmoo.org/xwiki/bin/view/Main/Developer/Mockups/#HSHOT231 > > > On Thu, Jul 1, 2021 at 6:57 AM Linas Vepstas <[email protected]> > wrote: > >> I don't get it ... javascript *is* a complex, low-level language. .. >> it's certainly *much more* complex then C or C++ ... this discussion is not >> meant to be a language war, it's meant to be about "how can we actually >> accomplish this?" >> >> -- Linas >> >> >> >> On Wed, Jun 30, 2021 at 11:50 PM Lansana Camara <[email protected]> >> wrote: >> >>> I don't see why you couldn't get all three with JavaScript. A web >>> application built in JavaScript (React) can be ported into Electron >>> <https://www.electronjs.org/>, which enables cross-platform desktop >>> applications. In other words: one language, one application, all platforms >>> and mobile devices. >>> >>> I've worked on some very sophisticated dashboards that were built for >>> the web, and I'm of the mindset that there is simply no need for complex >>> low level languages like C/C++ in the user interface domain, unless you're >>> dealing with low level embedded systems or something like that. But this >>> problem isn't in the space of embedded systems; it's in the space of >>> mobile/desktop applications. Thus, in my humble opinion, cross-platform >>> mobile/desktop applications are best left to modern user interface >>> technologies like JavaScript/TypeScript and the frontend ecosystem built >>> with it. >>> >>> On Wed, Jun 30, 2021 at 10:10 AM Linas Vepstas <[email protected]> >>> wrote: >>> >>>> >>>> >>>> On Tue, Jun 29, 2021 at 11:49 PM Lansana Camara <[email protected]> >>>> wrote: >>>> >>>>> Linas, >>>>> >>>>> Dashboards -- well, when I say dashboard, what I think of are things >>>>>> like the BIOS boot-up screen -- menus and lists and configurable >>>>>> parameters >>>>>> and you can navigate it with keyboard or mouse. My wifi router has a >>>>>> dashboard -- it's a web page, you can configure wifi settings in it. My >>>>>> (android) cell phone has one: it's the "settings" panel: you can change >>>>>> this or that setting, turn things on and off. >>>>>> >>>>> >>>>> >>>>> So I'm thinking the same thing but for generic data science with >>>>>> opencog. Take this file, copy it to that directory, start this script, >>>>>> look at diagnostic output, wait until the dataset is done, and when it's >>>>>> done, paint a green dot, and if it crashed, paint a red dot. That kind of >>>>>> stuff. Show me a graph of megabytes used so far, cause I have a datacap >>>>>> of >>>>>> 1 million atoms per month. JK.😂 >>>>> >>>>> >>>>> What you're asking for here is basically what they pay me the big >>>>> bucks in Silicon Valley to build on a 9-5 schedule 😂 >>>>> >>>> >>>> Sigh. It shouldn't be like that. I won't create a GUI mockup, for two >>>> reasons: first, this is something that artists and designers do, when >>>> trying to take an existing system to the next level. Right now, we don't >>>> have anything basic. Second, these kinds of things best evolve through >>>> regular use: you use it for a while, and if it stinks you stop using it, or >>>> you alter it so it works right. It's very hard to predict what that might >>>> be in advance. Also, processing steps evolve, flows change. The flow from >>>> last month might no longer apply this month. The process changes; the GUI >>>> needs to be malleable. >>>> >>>> Now, back in the day of desktop apps, there was this thing called a >>>> "gui designer". It allowed you to drag-n-drop menus, text-boxes, buttons, >>>> plots, charts, change their color, font size, stuff like that. You could >>>> hook them up to code that "did stuff": there was an editor, and you'd fill >>>> in the blank: on button-press, do this. On double-click, do that. If you >>>> never used one, you should try it. They're awesome! The one for Gnome/GTK >>>> is glade -- https://glade.gnome.org/ >>>> >>>> Is there something like this for React and/or Angular? >>>> >>>> I am confusing you and I am confusing myself, because I am talking >>>> about three different things. >>>> >>>> 1) An atomspace visualizer. This would be for complete beginners, and >>>> would be a web-javascript thing, so that we could stick it on a website, >>>> and allow people to dink with it, without having to install anything at >>>> all. Bonus: it runs on tablets. >>>> >>>> 2) A dashboard. I'm starting to think that maybe using Glade and GTK to >>>> build a desktop app is not a bad idea. The only thing wrong with that is >>>> it wouldn't run on cell phones and tablets. >>>> >>>> 3) A science exploration ... system/journal. Perhaps Jupyter is the >>>> best choice for this. The most deeply flawed problem with Jupyter is >>>> revision control. If you change one line of code in Jupyter, and do a diff, >>>> you get thousands of lines of code changed. That sucks: that makes using >>>> git completely useless. I'm told that there are some maybe-solutions for >>>> this, but I haven't really looked/tried. >>>> >>>> In some ideal world, a combination of all three would be best. I >>>> guess. >>>> >>>> -- linas >>>> >>>> >>>>> As previously stated, I really don't mind spinning up some >>>>> boilerplate, such that a new frontend developer familiar with React and >>>>> other modern technologies can get up and running with little hesitation. >>>>> That would literally take me a day or two or effort, tops. But it wouldn't >>>>> really include any functionality -- it'd just include the foundation to >>>>> build functionality on top of. >>>>> >>>>> If you want a full on production-ready dashboard/control panel >>>>> experience, with data visualization and data management...that is a >>>>> different level of responsibility. Even if it isn't built from scratch, >>>>> plugging your data into a pre-built system is not necessarily more >>>>> trivial. >>>>> >>>>> As someone that doesn't have the full context of opencog/atomese that >>>>> you have, it would be much easier if you could draw up some wireframes (or >>>>> go to Upwork.com and hire a graphic designer to build some wireframes for >>>>> like a measly $100) of the screens you're imagining in your mind. Once I >>>>> see those screens, it will be much better for me in terms of figuring out >>>>> the scope of work required here, which I can then clearly communicate back >>>>> to you. >>>>> >>>>> On Tue, Jun 29, 2021 at 12:08 PM Linas Vepstas <[email protected]> >>>>> wrote: >>>>> >>>>>> Reslav, (and Micheal ... below) >>>>>> >>>>>> Thanks! That is a very nice summary. I'm not sure quite where that >>>>>> leaves me, except maybe back at square-one. I'd like to see some kind of >>>>>> cute graphical atomspace browser that beginners could run, and ... >>>>>> ideally, >>>>>> run the demos from the examples directory. >>>>>> >>>>>> Kind of unrelated to that is that I would like to have a data science >>>>>> dashboard. So, what Mike says about MOZI -- but I am not working on >>>>>> bioinformatics, I am working on learning. I have similar needs: I have >>>>>> datasets that need to be managed and loaded. I have data-mining jobs that >>>>>> run for hours (or longer). I have to start, stop, checkpoint things, make >>>>>> backups. Then when I'm done, I need to make charts and plots to see what >>>>>> happened. >>>>>> >>>>>> Currently, I do the above with a strange brew of README files, bash >>>>>> scripts, config files, gnuplot, and the LyX word processor. I have found >>>>>> that 99% of potential collaborators do not have the attention span to get >>>>>> to the end of a README file. You have to be super-duper motivated to >>>>>> read >>>>>> it, and follow the instructions. So I'm thinking that, vaguely, surely, >>>>>> there must be some way of converting that into some kind of interactive >>>>>> web >>>>>> pages that walk you through the steps. >>>>>> >>>>>> Again: MOZI has built something like this, but it is custom-tailored >>>>>> to bioinformatics. And so I can't use any of it. If it was general >>>>>> purpose, there would be the benefit of shared development: anything done >>>>>> by >>>>>> one project (e.g. learning) could be used in another project (e.g. >>>>>> bioinformatics). >>>>>> >>>>>> Dashboards -- well, when I say dashboard, what I think of are things >>>>>> like the BIOS boot-up screen -- menus and lists and configurable >>>>>> parameters >>>>>> and you can navigate it with keyboard or mouse. My wifi router has a >>>>>> dashboard -- it's a web page, you can configure wifi settings in it. My >>>>>> (android) cell phone has one: it's the "settings" panel: you can change >>>>>> this or that setting, turn things on and off. >>>>>> >>>>>> So I'm thinking the same thing but for generic data science with >>>>>> opencog. Take this file, copy it to that directory, start this script, >>>>>> look at diagnostic output, wait until the dataset is done, and when it's >>>>>> done, paint a green dot, and if it crashed, paint a red dot. That kind of >>>>>> stuff. Show me a graph of megabytes used so far, cause I have a datacap >>>>>> of >>>>>> 1 million atoms per month. JK.😂 >>>>>> >>>>>> Is there some kind of generic data science dashboard out there, that >>>>>> we could adapt and use for managing opencog systems? >>>>>> >>>>>> --linas >>>>>> >>>>>> >>>>>> On Tue, Jun 29, 2021 at 12:08 PM Reslav Hollos < >>>>>> [email protected]> wrote: >>>>>> >>>>>>> TypeScript is a language, a superset of JS that adds syntax for >>>>>>> optional types (which are extremely helpful). It can be used for React >>>>>>> as >>>>>>> well and for any other JS project. >>>>>>> >>>>>>> Angular is a UI framework which is in my opinion over-engineered and >>>>>>> is built on top of bad practices like mutations (eg. two way data >>>>>>> binding). >>>>>>> Mutations are useful when performance is needed, but if not encapsulated >>>>>>> tend to be the cause of too many hidden bugs difficult to detect or even >>>>>>> fix. Newcomers I mentored had problems with Angular since it required >>>>>>> too >>>>>>> much knowledge to contribute even a little. Another example is the >>>>>>> model-view-presenter structure which I've found to be hard to maintain >>>>>>> on >>>>>>> large projects, it was confusing to too many people and allowed for >>>>>>> mistakes to happen very easily. Having such complexity at the very >>>>>>> beginning takes focus away from the application. >>>>>>> >>>>>>> React is a UI library which I believe got it right from the start, >>>>>>> it revolves around separation of concerns, app state propagates >>>>>>> hierarchically downwards (unidirectional data flow) and changes are done >>>>>>> with callbacks instead of directly mutating (these are called controlled >>>>>>> components). Mutations can still be used, but are not used by default. >>>>>>> React uses virtual DOM and an algorithm called 'reconciliation' that >>>>>>> determines when and what to update in the DOM, since state changes >>>>>>> generate >>>>>>> new objects, to me it's simpler than Angular's Change Detection. All of >>>>>>> which is debatable but in React things have mostly worked out of the box >>>>>>> for me, while in Angular there were many times an extra step, a >>>>>>> solution to >>>>>>> a problem that should not have existed in the first place and felt like >>>>>>> a >>>>>>> workaround. React has JSX syntax that combines HTML and JS and recent >>>>>>> updates added 'hooks' syntax which even more simplifies the state >>>>>>> management. >>>>>>> >>>>>>> In short I think that React based projects have bigger chances for >>>>>>> community contributions because of ease of use. >>>>>>> >>>>>>> About NPM, it can sometimes be tricky but I think it's manageable, >>>>>>> it shares some problems/solutions from many different package managers, >>>>>>> like mismatch of node version between dev environments, incorrect >>>>>>> handling >>>>>>> of package-lock.json (a file that hardcodes all dependencies of >>>>>>> dependencies versions) or some library incompatibilities with another >>>>>>> library which solution is usually in github issues comments. I use NPM >>>>>>> in >>>>>>> all JS projects. >>>>>>> >>>>>>> This is based on the experience I accumulated over the last 6 years. >>>>>>> >>>>>>> Reslav >>>>>>> >>>>>>> On Tue, Jun 29, 2021, 16:19 Linas Vepstas <[email protected]> >>>>>>> wrote: >>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> On Tue, Jun 29, 2021 at 8:57 AM Reslav Hollos < >>>>>>>> [email protected]> wrote: >>>>>>>> >>>>>>>>> I'm also interested in AtomSpace UI and have had very pleasant dev >>>>>>>>> experience with React (as well as TypeScript which I would recommend). >>>>>>>>> >>>>>>>> >>>>>>>> Well, the current code is in "Angular" -- and is TypeScript. How >>>>>>>> different is that? Are Angular and React two different versions of the >>>>>>>> same thing, or are they completely different? I can code in javascript >>>>>>>> just >>>>>>>> fine, but things like npm and etc. leave me stumped -- when there's a >>>>>>>> problem, I don't know how to debug it. >>>>>>>> >>>>>>>> --linas >>>>>>>> >>>>>>>> -- >>>>>>>> You received this message because you are subscribed to the Google >>>>>>>> Groups "opencog" group. >>>>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>>>> send an email to [email protected]. >>>>>>>> To view this discussion on the web visit >>>>>>>> https://groups.google.com/d/msgid/opencog/CAHrUA34hy9RZBg897pPX-hwhkcf_%2BbHmE%2B4QRSsE60p%3DnjKb9Q%40mail.gmail.com >>>>>>>> <https://groups.google.com/d/msgid/opencog/CAHrUA34hy9RZBg897pPX-hwhkcf_%2BbHmE%2B4QRSsE60p%3DnjKb9Q%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>>>>>> . >>>>>>>> >>>>>>> -- >>>>>>> You received this message because you are subscribed to the Google >>>>>>> Groups "opencog" group. >>>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>>> send an email to [email protected]. >>>>>>> To view this discussion on the web visit >>>>>>> https://groups.google.com/d/msgid/opencog/CANHDs8%3DrtH%3DUwMb5zwetbX9UPk3XiFnTnw2hy--aNmDqXkr3%3DA%40mail.gmail.com >>>>>>> <https://groups.google.com/d/msgid/opencog/CANHDs8%3DrtH%3DUwMb5zwetbX9UPk3XiFnTnw2hy--aNmDqXkr3%3DA%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>>>>> . >>>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Patrick: Are they laughing at us? >>>>>> Sponge Bob: No, Patrick, they are laughing next to us. >>>>>> >>>>>> >>>>>> -- >>>>>> You received this message because you are subscribed to the Google >>>>>> Groups "opencog" group. >>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>> send an email to [email protected]. >>>>>> To view this discussion on the web visit >>>>>> https://groups.google.com/d/msgid/opencog/CAHrUA34UVtF9vnOua5YOEVQuwZo_Z3PJkNZGVVYaC3H4yNUycg%40mail.gmail.com >>>>>> <https://groups.google.com/d/msgid/opencog/CAHrUA34UVtF9vnOua5YOEVQuwZo_Z3PJkNZGVVYaC3H4yNUycg%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>>>> . >>>>>> >>>>> -- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "opencog" group. >>>>> To unsubscribe from this group and stop receiving emails from it, send >>>>> an email to [email protected]. >>>>> To view this discussion on the web visit >>>>> https://groups.google.com/d/msgid/opencog/CAPPXERrZ5tpm5HD-nQxs09ykEUERzQ0hAcytrahzU_vE-UBhdg%40mail.gmail.com >>>>> <https://groups.google.com/d/msgid/opencog/CAPPXERrZ5tpm5HD-nQxs09ykEUERzQ0hAcytrahzU_vE-UBhdg%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>>> . >>>>> >>>> >>>> >>>> -- >>>> Patrick: Are they laughing at us? >>>> Sponge Bob: No, Patrick, they are laughing next to us. >>>> >>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "opencog" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to [email protected]. >>>> To view this discussion on the web visit >>>> https://groups.google.com/d/msgid/opencog/CAHrUA37ba8zJnEodzavpSo3hF6b6nAt0Q2rmAvvZC93i%2BCLa_Q%40mail.gmail.com >>>> <https://groups.google.com/d/msgid/opencog/CAHrUA37ba8zJnEodzavpSo3hF6b6nAt0Q2rmAvvZC93i%2BCLa_Q%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>> . >>>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "opencog" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/opencog/CAPPXERpJ1kXpzEZSj8ENMWQdutnu-N4Wa0oTBMpc%2B4x1Ph56Bg%40mail.gmail.com >>> <https://groups.google.com/d/msgid/opencog/CAPPXERpJ1kXpzEZSj8ENMWQdutnu-N4Wa0oTBMpc%2B4x1Ph56Bg%40mail.gmail.com?utm_medium=email&utm_source=footer> >>> . >>> >> >> >> -- >> Patrick: Are they laughing at us? >> Sponge Bob: No, Patrick, they are laughing next to us. >> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "opencog" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/opencog/CAHrUA34cicZZpuDSPSFLg5d%2B8ToXFyqD-2ODQ-9wOxkHyvOFfg%40mail.gmail.com >> <https://groups.google.com/d/msgid/opencog/CAHrUA34cicZZpuDSPSFLg5d%2B8ToXFyqD-2ODQ-9wOxkHyvOFfg%40mail.gmail.com?utm_medium=email&utm_source=footer> >> . >> > -- > You received this message because you are subscribed to the Google Groups > "opencog" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/opencog/CAER3M5%3DqeZvQLop27%3DGU8iH1eJOX8Q%2BZ9piaB0zZMTgxPJRJkw%40mail.gmail.com > <https://groups.google.com/d/msgid/opencog/CAER3M5%3DqeZvQLop27%3DGU8iH1eJOX8Q%2BZ9piaB0zZMTgxPJRJkw%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > -- Patrick: Are they laughing at us? Sponge Bob: No, Patrick, they are laughing next to us. -- You received this message because you are subscribed to the Google Groups "opencog" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/opencog/CAHrUA37HA2yLAVDwJfNZaEPOfWCktpcDrm-kFkNd0zQBJjDe%2Bw%40mail.gmail.com.
