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.

Reply via email to