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.

Reply via email to